Tee*_*rth 1 javascript url.action asp.net-mvc-4
是否可以将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>
Run Code Online (Sandbox Code Playgroud)
这是我想要分配给@ 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>
Run Code Online (Sandbox Code Playgroud)
小智 6
你需要使用javascript/jquery构建你的url.在视图中将链接更改为
<a id="export" href=#">Export as CSV</a>
Run Code Online (Sandbox Code Playgroud)
然后在脚本中
var baseurl = '@Url.Action("Export")';
$('#export').click(function() {
var url = baseurl + '?SelectedAccountType=' + $('#SelectedAccountType').val() + '&FromDate=' + $('#FromDate').val() + '&ToDate=' + $('#ToDate').val() + ...etc
location.href=url;
});
Run Code Online (Sandbox Code Playgroud)
但是,如果您的表单标有FormMethod.Get,则可以使用普通的提交按钮,不需要jquery
@using (Html.BeginForm("Export", "yourControllerName", FormMethod.Get))
{
@Html.TextBoxForm(m => m.SelectedAccountType)
....
<input type="submit" value="Export" />
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9522 次 |
| 最近记录: |