Asp.net 如何使用Url.Action发送数组
我有一个名为data的整数数组,我想从我的视图将其发送到一个特定的控制器,我可以看到我可以发送整数和字符串,它可以与我目前为止的代码一起工作,但是当我尝试发送数组时,我可以正确地获取数据 在我看来,这就是我的代码,这是一个简单的透视图Asp.net 如何使用Url.Action发送数组,asp.net,asp.net-mvc,url.action,Asp.net,Asp.net Mvc,Url.action,我有一个名为data的整数数组,我想从我的视图将其发送到一个特定的控制器,我可以看到我可以发送整数和字符串,它可以与我目前为止的代码一起工作,但是当我尝试发送数组时,我可以正确地获取数据 在我看来,这就是我的代码,这是一个简单的透视图 function SeeStation() { var data = []; var i = 0; $("input:checkbox:checked").each(f
function SeeStation() {
var data = [];
var i = 0;
$("input:checkbox:checked").each(function () {
data[i] = $(this).val();
});
window.location.href = "@Url.Action("ExportData", "Dispatch")?id=" + data;
}
这是控制器中的代码。我知道这没有多大意义,但到目前为止,我专注于通过参数正确获取数组
public ActionResult ExportData(int[] id)
{
var data = cn.ESTACIONDESPACHOes.ToList();
return View(data);
}
在我的数组数据中我存储了这样的东西[1,2,3],我想在控制器数组id中得到类似的东西试试看
@Url.Action("ExportData", "Dispatch", new { id= [1,2,3] })
它不会那样绑定。 要在操作中获取id数组,您需要在末尾有如下链接:
*Dispatch/ExportData?id=1&id=2&id=3*
您的“@Url.Action(“ExportData”,“Dispatch”)?id=“+data代码>不会生成该值(数据将给出用逗号分隔的数字)
您可以在枚举复选框时构建查询字符串
function SeeStation() {
var data = '';
$("input:checkbox:checked").each(function () {
data += 'id='$(this).val() + '&';
});
window.location.href = "@Url.Action("ExportData", "Dispatch")?" + data;
}
最后你会有一个“&”。您可以轻松地删除它,但它不会影响任何内容
也许有更好的方法可以做到这一点,但我只是使用了您的函数。将值存储在隐藏字段中
@HiddenFor(m=>m.Ids,新的{@Value=[1,2,3]})
然后使用ajaxget方法传递隐藏字段
在控制器方法中,使用字符串扩展方法将sting转换为数组
function SeeStation() {
var data = [];
var i = 0;
$("input:checkbox:checked").each(function () {
data[i] = $(this).val();
});
location.href = '@Url.Action("ExportData", "Dispatch")?id=' + data;
}
请删除窗口关键字。为什么<代码>位置
是窗口
对象的属性,因此引用是正确的,不太可能发生碰撞。