2009-07-21 9 views
9

Ho creato le mie caselle di testo HTML in modo che vengano associate a un modello di visualizzazione personalizzato durante la registrazione sul server.jQuery può eseguire un POST di un ViewModel su un controller in ASP.NET MVC?

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

Questo funziona perfettamente se si tratta di un POST tradizionale. Posso quindi riceverlo sul lato controller con qualcosa di simile:

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

Voglio sapere - è possibile fare il POST tramite jQuery e ancora ottenere lo stesso comportamento?

risposta

16

È possibile che non vi siano differenze tra "POST tradizionale" e "Posta AJAX". Per esempio:

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

Eugene, voglio inviare un ViewModel ad un metodo di azione, chiamare un metodo JavaScript in caso di successo, e rimanere su la stessa pagina. Sta usando questa la migliore pratica? –

+0

perfetto ... mi chiedevo come inviare il viewmodel al controller e ho usato JSON.stringfy(), ma il controller non riesce ad accettare i dati. Ma .serialize() ha funzionato. Molte grazie. –

4

Se ho capito bene, penso che sia abbastanza semplice

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

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