将javascript变量作为参数传递给@url.Action()

将javascript变量作为参数传递给@url.Action(),javascript,asp.net-mvc-4,url.action,Javascript,Asp.net Mvc 4,Url.action,是否可以将javascript变量作为参数传递给@url.Action(),因为据我所知,可能存在服务器端和客户端问题,我的要求是必须根据筛选器下载文件,而ajax调用无法下载文件。因此,我已经编写了@url.Action()的harcode,它可以工作,但无法实现这一点,有人可以建议我如何将参数传递给@url.Action()或任何其他方法吗 这是我的密码 <a href="@Url.Action("Export", new { SelectedAccountType="1", From

是否可以将javascript变量作为参数传递给@url.Action(),因为据我所知,可能存在服务器端和客户端问题,我的要求是必须根据筛选器下载文件,而ajax调用无法下载文件。因此,我已经编写了@url.Action()的harcode,它可以工作,但无法实现这一点,有人可以建议我如何将参数传递给@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>

var accountType=$('#SelectedAccountType').val();
var fromDate=$('#fromDate').val();
var toDate=$('#toDate').val();
var accountId=$('#SelectedAccount').val();
var userId=$('#SelectedUser').val();
var teamId=$('#SelectedTeam').val();

您需要使用javascript/jquery构建url。在视图中,将链接更改为

<a id="export" href=#">Export as CSV</a>
但是,如果您的表单标记为
FormMethod.Get
,则只需使用普通的提交按钮,无需jquery

@using (Html.BeginForm("Export", "yourControllerName", FormMethod.Get))
{
  @Html.TextBoxForm(m => m.SelectedAccountType)
  ....
  <input type="submit" value="Export" />
}
@使用(Html.BeginForm(“导出”、“您的控制器名称”、FormMethod.Get))
{
@TextBoxForm(m=>m.SelectedAccountType)
....
}

不可能。Razor代码在发送到视图之前在服务器上进行解析(javascript变量是客户端变量,服务器上不存在)。您可以使用脚本更新生成的
tag@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)
@using (Html.BeginForm("Export", "yourControllerName", FormMethod.Get))
{
  @Html.TextBoxForm(m => m.SelectedAccountType)
  ....
  <input type="submit" value="Export" />
}