2010-07-28 56 views
0

我遇到了一个问题,这个问题一直困扰着我。将多个复选框值传递给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); 
} 

回答

0

jQuery的脚本,我不是100%肯定这是怎么回事与jQuery的东西和create_dialog但似乎对我来说,你正在传递一个数组到控制器,而控制器正在寻找一个字符串。

我想你会需要将控制器更改为:

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