MVC从Javascript和发送数组调用新操作和视图

MVC从Javascript和发送数组调用新操作和视图,javascript,c#,arrays,asp.net-mvc-5,window.location,Javascript,C#,Arrays,Asp.net Mvc 5,Window.location,我目前在一个网格中有一个IEnumerable视图,我在其中添加了复选框,以允许我选择项目(我通过JavaScript获取id并构建一个仅包含id的数组) 我有一个按钮,它可以将数组发送到一个新操作并加载相应的视图 起初我试图通过一个JSON对象发送数组,但我无法让控制器加载新视图,它只是将结果返回到当前视图(不是我想要的) 因此,我现在只是尝试以下几点: window.location.href = '/TeamSelector/TeamList?array=' +SwimmerList;

我目前在一个网格中有一个IEnumerable视图,我在其中添加了复选框,以允许我选择项目(我通过JavaScript获取id并构建一个仅包含id的数组)

我有一个按钮,它可以将数组发送到一个新操作并加载相应的视图

起初我试图通过一个JSON对象发送数组,但我无法让控制器加载新视图,它只是将结果返回到当前视图(不是我想要的)

因此,我现在只是尝试以下几点:

window.location.href = '/TeamSelector/TeamList?array=' +SwimmerList;
这是工作,但对象没有被正确发送,因为我在控制器端的数组中没有收到任何内容

    public ActionResult TeamList (List<int> Array)
    {
    // Do something here
    return view(results)
    }
public ActionResult团队列表(列表数组)
{
//在这里做点什么
返回视图(结果)
}
有人能告诉我如何构造JavaScript代码来发送数组,以便控制器能够接受它吗

如有任何建议,将不胜感激


Andy。

以将值集合发回带有签名的GET方法

public ActionResult TeamList (List<int> Array)
实现这一点的一种方法是(假设您的复选框中有
class=“checkbox”


感谢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;
var url='/TeamSelector/TeamList?';
对于(变量i=0;i

由于我的使用,我一直在努力使用复选框并获取它们的状态,因此我最终在复选框中添加了一个点击按钮,并以这种方式控制它来构建我的阵列。

它需要是
/TeamSelector/TeamList?array=1&array=2&array=3
etc@StephenMuecke非常感谢你的快速回答。我刚刚测试过,它第一次起作用。我将编写一点代码来迭代数组并将文本添加到url(这可能需要我3周的时间和4个以上的问题)。斯蒂芬,请你把答案贴出来,这样我就可以标记它了,这是你为我解决的另一个问题,非常感谢。如果你给我30分钟,我还将向你展示如何使用javascript数组中的值生成它:)@StephenMuecke,不,请不要,我会弄明白的,当我们完全陷入困境时,你最好花时间帮助我这样的人!!我有基本的想法,不应该花太长时间:)好的,但我会在以后更新:)不幸的是,我一直坚持使用Grid.MVC,我发现随着时间的推移,它非常有限,而且是一个相当死气沉沉的插件。其中的复选框功能很奇怪,显示了两个复选框,我似乎无法更新它们,因此我添加了单击功能以手动构建阵列。如果没有网格外MVC,您优雅的解决方案将是完美的。
location.href = '/TeamSelector/TeamList?array=' + $('.checkbox:checked').map(function () {
    return $(this).val();
}).get().join('&array=');
        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;