2009-07-21 5 views
9

Ich habe meine HTML-Textfelder erstellt, so dass sie an ein benutzerdefiniertes Ansichtsmodell gebunden werden, wenn sie auf dem Server zurückgeben.Kann jQuery einen POST eines ViewModel an einen Controller in ASP.NET MVC senden?

<%= Html.TextBox("CustomerFormViewModel.Email")%> 

Dies funktioniert gut, wenn es ein traditionelles POST ist. Ich kann es dann auf der Steuerungsseite erhalten mit etwas wie folgt aus:

[AcceptVerbs(HttpVerbs.Post)] 
public ActionResult AddCustomer(CustomersFormViewModel model) 
{ 
    //validate data, save customer, handle validation errors... 
} 

ich wissen will - ist es möglich, die POST über jQuery zu tun und immer noch das gleiche Verhalten bekommen?

Antwort

16

Es ist möglich, dass es keinen Unterschied zwischen einem "traditionellen POST" und "AJAX Post" gibt. Zum Beispiel:

$.ajax({ type: "POST", 
    url: '<%= Url.Action("AddCustomer", "Customer") %>', 
    data: $('form').serialize(), 
    success: function(data, textStatus) { 
    } 
}); 
+0

Eugene ziemlich einfach ist, mag ich ein Viewmodel zu einer Aktionsmethode schreiben, eine JavaScript-Methode auf Erfolg nennen, und bleiben Sie auf die gleiche Seite. Ist dies die beste Praxis? –

+0

perfekt ... ich frage mich, wie man das Viewmodel auf dem Controller und ich habe die JSON.stringfy(), aber der Controller kann die Daten nicht akzeptieren. Aber das .serialize() hat funktioniert. Danke vielmals. –

4

Wenn ich Sie recht verstehe, ich glaube, es

var formData = $("#form").serialize(); 

$.post("path/to/action", formData, function(data) { //success }); 
Verwandte Themen