使用ActionLink在MVC中打开Modal并传递参数

我试图通过单击ActionLink并传递如下参数来在同一页面上打开我的引导模式:

@foreach (Items item in Model) { @Html.ActionLink("Download", "#", new { data-id = '@item.Name' } ) } //Modal  

在ActionLink中,我将actionName参数保留为#,这是因为模式位于同一页面上,当用户选择模态中的选项时,将决定操作。 不直接调用下载操作方法的原因是因为用户可以选择以各种格式下载excel,csv等。

这是我使用html.actionlink显示引导模式forms的方法

 @Html.ActionLink("ModalPopUp", "#", new { id = parameter }, new { @data_toggle = "modal", @data_target = "#YourModalId"}) 

打开引导模式对话框不需要您使用ActionLink ,正如Adriano上面提到的那样,您会混淆客户端和服务器代码。

可以使用此问题中描述的以下选项操纵引导模式。

 $('#myModal').modal('toggle'); $('#myModal').modal('show'); $('#myModal').modal('hide'); 

在您的情况下,您的代码应该看起来像这样。

 @foreach (Items item in Model) { Download } $(function () { $(".OpenDialog").click(function (e) { $('#myModal').modal('show'); }); }); 

在将数据传递给模态时,这实际上是一个单独的问题,但这里介绍了它。

基本上,您可以处理click事件并将值放在可见或隐藏的字段中(以适当的为准)。

所以你可以将上面的代码更改为这样的代码

 $(function () { $(".OpenDialog").click(function (e) { $("#myModal #id").val($(this).data("id")); $("#myModal").modal('show'); }); }); 

现在你有了存储在你的模态中的值,可以根据需要访问它。