Javascript 使用ActionLink在MVC中打开模态并传递参数
我试图通过单击ActionLink并传递如下参数在同一页面上打开我的引导模式:Javascript 使用ActionLink在MVC中打开模态并传递参数,javascript,jquery,asp.net-mvc,twitter-bootstrap,Javascript,Jquery,Asp.net Mvc,Twitter Bootstrap,我试图通过单击ActionLink并传递如下参数在同一页面上打开我的引导模式: @foreach (Items item in Model) { @Html.ActionLink("Download", "#", new { data-id = '@item.Name' } ) } //Modal <div id="dModal" class="modal hide fade" aria-hidden="true"> <div class="modal-body"&
@foreach (Items item in Model)
{
@Html.ActionLink("Download", "#", new { data-id = '@item.Name' } )
}
//Modal
<div id="dModal" class="modal hide fade" aria-hidden="true">
<div class="modal-body">
@using (Html.BeginForm("getCSV", "Download", new { filename = data-id }, FormMethod.Post, null))
{
<button id="btnCSV" type="submit">Download CSV</button>
}
//other options for excel, word etc
</div>
</div>
@foreach(模型中的项目)
{
@ActionLink(“下载”,“#”,新{data id='@item.Name'})
}
//模态
@使用(Html.BeginForm(“getCSV”,“Download”,new{filename=data id},FormMethod.Post,null))
{
下载CSV
}
//excel、word等的其他选项
在ActionLink中,我将actionName参数保留为#,这是因为模式在同一页面上,当用户选择模式中的选项时,将决定操作。不直接调用下载操作方法的原因是,用户可以选择以各种格式下载excel、csv等。打开引导模式对话框不需要使用
ActionLink
,正如Adriano在上面提到的,您会混淆客户端和服务器代码
可以使用中所述的以下选项操纵引导模式
在你的例子中,你的代码应该是这样的
@foreach (Items item in Model)
{
<a href="javascript:void(0);" data-id="@item.Name" class="OpenDialog">Download</a>
}
$(function () {
$(".OpenDialog").click(function (e) {
$('#myModal').modal('show');
});
});
现在您已经将值存储在模式中,可以根据需要访问它。这就是我如何使用html.actionlink显示引导模式表单的
@Html.ActionLink("ModalPopUp", "#", new { id = parameter }, new { @data_toggle = "modal", @data_target = "#YourModalId"})
您正在混合客户端和服务器端。“#”不是有效的控制器名称(您是服务器端),因为“数据id”不是有效的属性名称(它是计算数据值减去id值的表达式,同样,您是服务器端)。将ActionLink替换为目标URL为javascript的普通链接。在这里,您将显示模态对话框,并在JavaScript中发布代码。下载将从一个简单的窗口开始。location.href=yourcalculatedurlMaxim我做了上述操作,但如何在模式中访问“@item.Name”值并在“new{filename=@item.Name}”中输入该值?Maxim但即使使用上述操作,也无法在模式中的my html.beginform中插入该值。该值只能插入到文本字段、div等中。是否有其他方法?是否可以加入ese valor数据(“id”)、es decir GAURDAR el id que se esta enviando al modal en una var?
$(function () {
$(".OpenDialog").click(function (e) {
$("#myModal #id").val($(this).data("id"));
$("#myModal").modal('show');
});
});
@Html.ActionLink("ModalPopUp", "#", new { id = parameter }, new { @data_toggle = "modal", @data_target = "#YourModalId"})