MVC 从 Javascript 调用新的操作和视图并发送数组
MVC Call new Action and View from Javascript and send Array
我目前在网格中有一个 IEnumerable 视图,我在其中添加了复选框,以允许我 select 项(我通过 JavaScript 获取 id 并构建一个仅包含身份证)。
我有一个按钮,可以将数组发送到新操作并加载相应的视图。
我首先尝试通过一个有效的 JSON 对象发送数组,但我无法让控制器加载新视图,它只是 returns 结果到当前视图(不是我想要的)。
所以我现在正在尝试以下操作:
window.location.href = '/TeamSelector/TeamList?array=' +SwimmerList;
这是有效的,但对象没有被正确发送,因为我在控制器端的数组中没有收到任何东西。
public ActionResult TeamList (List<int> Array)
{
// Do something here
return view(results)
}
有人可以告诉我如何构造 JavaScript 代码来发送数组,以便控制器接受它。
任何 suggestion/advice 将不胜感激。
安迪.
为了 post 将值集合返回到具有签名
的 GET 方法
public ActionResult TeamList (List<int> Array)
你的url需要
/TeamSelector/TeamList?array=1&array=2&array=3 // etc
实现此目的的一种方法是(假设您的复选框有 class="checkbox"
)
location.href = '/TeamSelector/TeamList?array=' + $('.checkbox:checked').map(function () {
return $(this).val();
}).get().join('&array=');
感谢 Stephen 和他的回答,我已经编写了一个基本脚本来构建 url 数组数据,现在一切正常。
var url = '/TeamSelector/TeamList?';
for (var i = 0; i < SwimmerList.length; i++)
{
if (i == 0) {
url = url + 'array=' + SwimmerList[i];
} else {
url = url + '&array=' + SwimmerList[i];
}
}
window.location.href = url;
由于我使用 Grid.MVC,我一直在努力使用复选框并获取它们的状态,所以我最终在复选框上添加了一个点击按钮,然后我以这种方式控制它来构建我的阵列。
我目前在网格中有一个 IEnumerable 视图,我在其中添加了复选框,以允许我 select 项(我通过 JavaScript 获取 id 并构建一个仅包含身份证)。
我有一个按钮,可以将数组发送到新操作并加载相应的视图。
我首先尝试通过一个有效的 JSON 对象发送数组,但我无法让控制器加载新视图,它只是 returns 结果到当前视图(不是我想要的)。
所以我现在正在尝试以下操作:
window.location.href = '/TeamSelector/TeamList?array=' +SwimmerList;
这是有效的,但对象没有被正确发送,因为我在控制器端的数组中没有收到任何东西。
public ActionResult TeamList (List<int> Array)
{
// Do something here
return view(results)
}
有人可以告诉我如何构造 JavaScript 代码来发送数组,以便控制器接受它。
任何 suggestion/advice 将不胜感激。
安迪.
为了 post 将值集合返回到具有签名
的 GET 方法public ActionResult TeamList (List<int> Array)
你的url需要
/TeamSelector/TeamList?array=1&array=2&array=3 // etc
实现此目的的一种方法是(假设您的复选框有 class="checkbox"
)
location.href = '/TeamSelector/TeamList?array=' + $('.checkbox:checked').map(function () {
return $(this).val();
}).get().join('&array=');
感谢 Stephen 和他的回答,我已经编写了一个基本脚本来构建 url 数组数据,现在一切正常。
var url = '/TeamSelector/TeamList?';
for (var i = 0; i < SwimmerList.length; i++)
{
if (i == 0) {
url = url + 'array=' + SwimmerList[i];
} else {
url = url + '&array=' + SwimmerList[i];
}
}
window.location.href = url;
由于我使用 Grid.MVC,我一直在努力使用复选框并获取它们的状态,所以我最终在复选框上添加了一个点击按钮,然后我以这种方式控制它来构建我的阵列。