【发布时间】:2017-06-22 20:23:03
【问题描述】:
我的 MVC 控制器中有一个方法,当被调用时会下载一个文档。
我有一个引导模式,href 所在的位置指向此方法。
@Html.ActionLink("Download", "Download", new { applicantId = 1, templateId = 1 })
分钟的申请者ID 和模板ID 是硬编码的,但是这些值通过jquery 作为文本值传递给Modal。
是否可以动态获取 HTML id 并将其添加到 @Html.ActionLink?
模态:
<div id="template1">
<div class="modal fade" id="myModal1" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
<h3 id="app" style="display:none"></h3>
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title" id="myModalLabel">Letter Template Logo</h4>
</div>
<div class="modal-body">
<img style="background-size:cover;" src="~/Content/images/image.png" alt="" />
</div>
<div class="modal-footer">
ActionLink("Download", "Download", new { applicantId = 1, templateId = 1 })
</div>
</div>
</div>
</div>
</div>
【问题讨论】:
-
不太清楚你在这里问什么。
@Html.ActionLink()是剃须刀代码,在发送到视图之前在服务器上进行解析,因此如果您想根据仅在客户端可用的数据更改生成的href属性,那么您需要 javascript。而且您不能使用 ajax 下载文件。您需要重定向到该方法。 -
@StephenMuecke 是的,发布后,我读到无法通过 ajax 做到这一点。我在问,我可以将传递给模态的 a 值绑定到 html.actionlink 参数吗?
-
你需要使用javascript/jquery来改变
href属性。或者,取消默认操作并构建您自己的 url 并使用location.href重定向和下载文件。 (当您没有显示控制器方法或指出applicantId和templateId的值来自哪里时,有点难以给出答案) -
这些值来自下拉列表,所以如果我可以使用 javascript 更改属性,使用“a”标签而不是 @html.actionlink 会更好吗?
-
没什么区别(
@Html.ActionLink()只是生成一个<a>标签 - 使用ActionLink()总是更好,因为它可以确保您的网址正确)
标签: javascript c# jquery asp.net-mvc asp.net-mvc-5