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,我一直在努力使用复选框并获取它们的状态,所以我最终在复选框上添加了一个点击按钮,然后我以这种方式控制它来构建我的阵列。