2009-07-21 17 views
9

Tengo creados mis cuadros de texto Html para que se vinculen a un modelo de vista personalizado cuando se vuelvan a publicar en el servidor.¿Puede jQuery hacer una POST de un ViewModel a un controlador en ASP.NET MVC?

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

Esto funciona muy bien si es un correo tradicional. A continuación, puedo recibirlo en el lado del controlador con algo como esto:

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

Quiero saber - es posible hacer la entrada a través de jQuery y aún así obtener el mismo comportamiento?

Respuesta

16

Es posible, no hay diferencia entre una "POST tradicional" y una "Publicación de AJAX". Por ejemplo:

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

Eugene, quiero publicar un modelo de vista a un método de acción, llame a un método JavaScript en caso de éxito, y estar al tanto la misma página. ¿Está utilizando esto como la mejor práctica? –

+0

perfecto ... me preguntaba cómo publicar el modelo de vista en el controlador y he usado el JSON.stringfy(), pero el controlador no acepta los datos. Pero el .serialize() ha funcionado. Muchas gracias. –

4

Si he entendido bien, creo que es bastante simple

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

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