Can jQuery do a POST of a ViewModel to a Controlle

2019-02-07 01:25发布

问题:

I have my Html Textboxes created so that they will be bound to a custom view model when posting back to the server.

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

This works great if it's a traditional POST. I can then receive it on the Controller side with something like this:

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

I want to know -- is it possible to do the POST via jQuery and still get the same behavior?

回答1:

It is possible, there is no difference between a "traditional POST" and "AJAX Post". For example:

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


回答2:

If I understand you right, I think it's pretty simple

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

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