【发布时间】:2015-08-24 05:51:16
【问题描述】:
是否可以将javascript变量作为参数传递给@url.Action(),因为据我所知可能存在服务器和客户端问题,我的要求是我必须根据过滤器下载文件,并且 ajax 调用不适用于下载文件。所以我对有效但无法实现的@url.Action() 进行了编码,任何人都可以建议我如何将参数传递给@url.Action() 或任何其他方法。
这是我的代码
<a href="@Url.Action("Export", new { SelectedAccountType="1", FromDate = "2014-02-02", ToDate = "2014-02-02", SelectedAccount = "", SelectedUser = "", SelectedTeam = "" })" class="btn-primary" id="exportbutton2"> Export as CSV</a>
这是我要分配给@Url.Action的参数
<script type="text/javascript">
var accountType = $('#SelectedAccountType').val();
var fromDate = $('#FromDate').val();
var toDate = $('#ToDate').val();
var accountId = $('#SelectedAccount').val();
var userId = $('#SelectedUser').val();
var teamId = $('#SelectedTeam').val();
</script>
【问题讨论】:
-
不可能。 Razor 代码在发送到视图之前在服务器上进行解析(javascript 变量是客户端,服务器上不存在)。您可以使用您的脚本来更新生成的
<a>标签的href属性 -
@StephenMuecke 这就是我在问题中提到它的原因。知道如何替换那些
-
您的链接当前生成什么 - 是
../Export/1/2014-02-02/...还是../Export?SelectedAccountType=1&FromDate=2014-02-02&...? -
@StephenMuecke 是的,先生,它正在生成 ../Export?SelectedAccountType=1&FromDate=2014-02-02&ToDate=2014-02-02"
-
我可以向您展示如何构建
href属性,但是您为什么不使用带有FormMethod.Get的表单呢? (根本不需要 jquery)
标签: javascript asp.net-mvc-4 url.action