2010-07-28 5 views
0

J'ai un peu un problème qui m'a conduit batty.Passer de multiples valeurs de case à cocher à l'action avec Jquery

J'ai une page qui génère une liste de cases à cocher basées sur une recherche. Dans la page se trouve également une boîte de dialogue conçue pour s'afficher lorsqu'un bouton est enfoncé. Ce que j'essaye de faire est d'obtenir des valeurs des cases à cocher et de les passer à une action de contrôleur qui retourne alors le partiel pour la boîte de dialogue. Le problème que j'ai est que je reçois les valeurs des cases à cocher, mais ils ne passent pas à l'action dans le contrôleur. Je ne sais pas ce que je manque ici.

Le script jquery J'utilise

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(); 
      }); 
     }); 

L'Action Controller

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

Répondre

0

Je ne suis pas sûr à 100% ce qui se passe avec les trucs jQuery et le create_dialog mais il semble à moi que vous passez un tableau au contrôleur tandis que le contrôleur est juste à la recherche d'une chaîne.

Je pense que vous auriez besoin de changer le contrôleur à:

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