繁体   English   中英

MVC从Javascript调用新的Action和View并发送数组

[英]MVC Call new Action and View from Javascript and send Array

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

我有一个按钮,应该将数组发送到新动作并加载相应的视图。

我首先尝试通过可以工作的JSON对象发送数组,但是我无法让控制器加载新视图,它只是将结果返回到当前视图(不是我想要的)。

所以我现在只是尝试以下方法:

window.location.href = '/TeamSelector/TeamList?array=' +SwimmerList;

这正在工作,但是对象未正确发送,因为我在控制器端的数组中什么也没收到。

    public ActionResult TeamList (List<int> Array)
    {
    // Do something here
    return view(results)
    }

有人可以建议我如何构造JavaScript代码以发送数组,以便控制器将其接受。

任何建议/建议将不胜感激。

安迪。

为了将值的集合发回给具有签名的GET方法

public ActionResult TeamList (List<int> Array)

您的网址必须是

/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,因此我一直不愿意使用该复选框并获取它们的状态,因此我最终在该复选框上添加了一个单击按钮,并以此方式控制它来构建数组。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM