Javascript 使用ActionLink在MVC中打开模态并传递参数

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"&

我试图通过单击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">
      @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"})