【发布时间】:2014-02-02 12:52:33
【问题描述】:
我试图通过单击 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>
在ActionLink中我将actionName参数保留为#,这是因为模态在同一页面上,当用户选择模态中的选项时将决定动作。之所以不直接调用下载动作方法是因为用户可以选择下载各种格式的excel、csv等。
【问题讨论】:
-
您正在混合客户端和服务器端。 “#”不是有效的控制器名称(您是服务器端),因为“data-id”不是有效的属性名称(它是计算数据值 MINUS id 值的表达式,同样您是服务器端)。将您的 ActionLinks 替换为目标 URL 为 javascript 的纯链接。在那里您将显示模态对话框并在 JavaScript 中发布代码。下载将从一个简单的 window.location.href = yourcalculatedurl 开始
标签: javascript jquery asp.net-mvc twitter-bootstrap