2009-11-06 7 views
0

Je me demandais s'il est possible de passer la collection de formulaires à partir d'une méthode ajax dans jQuery?jQuery Ajax passant la collection de formulaires

$.ajax({ 
     type: "POST", 
     url: "/page/Extension/" + $("#Id").val(), 
     data: "{}", 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     success: function(msg) { 
      $("#result").html(msg); 
      false; 
     } 
    }); 

S'il est possible de passer dans la collection des formulaires puis quand il arrive à la méthode dans C# comment vous l'avez lu dans?

Répondre

1

Vous pouvez utiliser la méthode Ajax.BeginForm à partir d'ASP.NET MVC. Il utilisera ajax de Microsoft pour faire la demande, mais vous pouvez avoir une méthode JQuery exécutée à la fin. Ou vous pouvez utiliser un UpdatePanel et enregistrer un javascript pour exécuter avec le ScriptManager une fois que le UpdatePanel se charge. Une autre chose que vous pourriez essayer est d'utiliser une jquery comme ceci: $ (': input') pour obtenir une collection de tous les éléments input, textarea, select et button (documentation JQuery), et les transmettre comme données dans votre requête.

2

Vous pouvez faire quelque chose comme ceci:

var form = $("#myForm").serialize(); 
$.post("/Home/MyUrl", form, function(returnHtml) 
     { 
      //callback 
     }); 

Puis sur le côté C#, vous devriez être en mesure de faire quelque chose comme ceci:

[AcceptVerbs(HttpVerbs.Post)] 
    public ActionResult MyUrl(FormCollection collection) 
    { 
     //do what you gotta do 
    } 

Je pense que cela devrait fonctionner.

EDIT: J'ai juste remarqué que je supposais simplement que vous faisiez référence à ASP.NET MVC. Si non, laissez-moi savoir que cette réponse est spécifique à MVC.

1

a obtenu ce travail tout va bien, et il retourne la forme d'entrée dans la collection FormCollection

input = $(':input') 
$.ajax({ 
    type: "POST", 
    url: "/page/Extension/" + $("#Id").val(), 
    data: input, 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    success: function(msg) { 
     $("#result").html(msg); 
     false; 
    } 
}); 
+0

solution de Nice Coppermill. C'était une aide précieuse. –