2009-07-21 10 views
9

Tôi có Hộp văn bản Html được tạo để chúng sẽ bị ràng buộc với mô hình chế độ xem tùy chỉnh khi đăng lại máy chủ.jQuery có thể thực hiện POST của một ViewModel tới một Controller trong ASP.NET MVC không?

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

Điều này rất hữu ích nếu đó là POST truyền thống. Sau đó tôi có thể nhận được nó ở phía bên Controller với một cái gì đó như thế này:

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

Tôi muốn biết - có thể thực hiện POST thông qua jQuery và vẫn nhận được hành vi tương tự không?

Trả lời

16

Có thể, không có sự khác biệt giữa "POST truyền thống" và "AJAX Post". Ví dụ:

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

Eugene, tôi muốn gửi một viewmodel đến một phương pháp hành động, gọi một phương thức JavaScript trên thành công, và ở lại trên cùng một trang. Sử dụng điều này là thực hành tốt nhất? –

+0

hoàn hảo ... tôi đã tự hỏi làm thế nào để đăng các viewmodel để điều khiển và tôi đã sử dụng JSON.stringfy(), nhưng bộ điều khiển không chấp nhận dữ liệu. Nhưng .serialize() đã hoạt động. Cảm ơn rất nhiều. –

4

Nếu tôi hiểu bạn đúng, tôi nghĩ nó khá đơn giản

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

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