【发布时间】:2015-09-22 10:48:32
【问题描述】:
我有一个带有模式窗口的视图。当我单击打开模态窗口时,我想将参数item.InstrumentId 传递到模态窗口,以便我可以单击一个链接,将我从属于 InstrumentId 的特定工具重定向到页面。我在下面所做的成功地将 InstrumentId 传递到窗口中,但问题是我不知道如何将该值传递到 Html.ActionLink。关于如何进行的任何提示?
@foreach (var item in Model)
{
<li class="list-group-item">
<div class="row">
<div class="col-md-4">
<h4>
Instrument: @item.InstrumentId
</h4>
</div>
<div class="col-md-4">
@item.Type
</div>
<div class="col-md-4">
<!-- Button trigger modal -->
<button type="button" class="open-dialog btn btn-primary btn-sm" data-toggle="modal" data-target="#myModal" data-id="@item.InstrumentId">
View details
</button>
<script type="text/javascript">
$(document).on("click", ".open-dialog", function() {
var modalId = $(this).data('id');
$(".modal-dialog #myModal").val(modalId);
})
</script>
<!-- Modal -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
<h4 class="modal-title" id="myModal"></h4>
</div>
<div class="modal-body">
@item.Message
<br/> <br/> <br/>
<div class="row">
<div class="col-md-4">
Slide: <a href="/Home/Slide" class="Button">1234500323</a>
</div>
<div class="col-md-4">
Instrument: @Html.ActionLink(item.InstrumentId, "Instrument", new {instrumentid = item.InstrumentId})
</div>
<div class="col-md-4">
Checked: @item.Checked
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Save changes</button>
</div>
</div>
</div>
</div>
</div>
</div>
</li>
}
更新
<div>
<ul class="list-group">
@foreach (var item in Model)
{
<li class="list-group-item">
<div class="row">
<div class="col-md-4">
<h4>
Instrument: @item.InstrumentId
</h4>
</div>
<div class="col-md-4">
@item.Type
</div>
<div class="col-md-4">
<!-- Button trigger modal -->
<button type="button" class="open-dialog btn btn-primary btn-sm" data-url="@Url.Action("Instrument", new {instrumentid = @item.InstrumentId})">
View details
</button>
<script type="text/javascript">
$(document).on("click", ".open-dialog", function() {
$('#details').attr('href', $(this).data('url')); // update the links url
});
</script>
</div>
</div>
</li>
}
</ul>
<!-- Modal -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
</div>
<div class="modal-body">
@*@item.Message*@
<br /> <br /> <br />
<div class="row">
<div class="col-md-4">
Slide: <a href="/Home/Slide" class="Button">1234500323</a>
</div>
<div class="col-md-4">
Instrument: <a id="details" href="#">Details</a>
</div>
<div class="col-md-4">
Checked: @*@item.Checked*@
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Save changes</button>
</div>
</div>
</div>
</div>
【问题讨论】:
-
带有
id="myModal"的元素是<h4>,所以$(".modal-dialog #myModal").val(modalId);不可能工作,尽管你声称是这样。 -
您是在循环执行此操作吗?既然
Html.ActionLink()你已经有了new { instrumentid = item.InstrumentId },你为什么需要传递它已经拥有的相同的值? -
是的,我正在循环执行此操作。
不显示任何内容,但如果我在其中放置类似 元素的内容,我可以在模式窗口中显示该值。事情是,我有一个仪器。每个仪器都有一个按钮,用于查看有关该仪器的详细信息。我之所以需要传递值,是因为我需要从我点击的特定仪器中传递 id,而 item.InstrumentId 只从列表中的第一个仪器中获取第一个 id。
-
所以按钮是循环的,但模态的不是?
-
好吧,一切都在循环中。我已经用添加的循环更新了 OP。
标签: javascript asp.net asp.net-mvc