使用Jquery将多个复选框值传递给操作

时间:2010-07-28 00:31:53

标签: jquery asp.net-mvc-2

我有一个问题一直困扰着我。

我有一个页面,根据搜索生成一个复选框列表。页面内还有一个对话框,用于在按下按钮时显示。我要做的是从复选框中获取值并将它们传递给控制器​​操作,然后返回对话框的部分。

我遇到的麻烦是我从复选框中获取值,但它们没有传递给控制器​​中的操作。不知道我在这里缺少什么。

我正在使用的jquery脚本

 var create_dialog = jQuery("#main div#list_dialog");
        // AddToList is a button for sending values to the action
        $("#AddToList").live("click", function() {
            var myData = new Array();
            var i = 0;
            $("input:checkbox[@name='ID']").each(
                function() {
                    if (this.checked) {
                        myData[i] = this.value;
                        i++;
                    }
                });
            create_dialog.load(
        Jurat.Path.createActionPath("List", "ListValues"),
        { ID: myData },
            function() {
                create_dialog.dialog("open");
                create_dialog.find("form").validate();
            });
        });

控制器动作

[HttpPost]
public ActionResult ListValues(string ID)
{
        // Removed manipulation details
    return PartialView("ListSelection", Data);
}

1 个答案:

答案 0 :(得分:0)

我不是100%肯定jQuery的东西和create_dialog,但在我看来,你正在将一个数组传递给控制器​​,而控制器正在寻找一个字符串。

我认为您需要将Controller更改为:

[HttpPost]
public ActionResult ListValues(string[] ID)
{
        // Removed manipulation details
    return PartialView("ListSelection", Data);
}