2009-07-21 3 views
9

서버에 다시 게시 할 때 사용자 지정보기 모델에 바인딩되도록 내 HTML 텍스트 상자를 만들었습니다.jQuery는 ASP.NET MVC에서 ViewModel의 POST를 컨트롤러에 할 수 있습니까?

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

전통적인 POST 인 경우이 기능이 유용합니다. 이 jQuery를 통해 POST를하고 여전히 같은 동작을 얻을 수 있습니다 -

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

: 나는 다음과 같이 뭔가 컨트롤러 측에서 그것을받을 수 있습니까?

답변

16

"기존 POST"와 "AJAX Post"간에 차이는 없습니다. 예를 들어 : 바로 당신을 이해한다면

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

유진 아주 간단하다고 생각 나는, 작업 방법에 대한 뷰 모델을 게시 성공 하나 개의 자바 스크립트 메소드를 호출하고,에 있고 싶어 같은 페이지. 이것을 가장 좋은 방법으로 사용하고 있습니까? –

+0

완벽 ... 컨트롤러에 viewmodel을 게시하는 방법을 궁금해서 JSON.stringfy()를 사용했지만 컨트롤러가 데이터를 받아들이지 못합니다. 그러나 .serialize()가 효과적입니다. 고마워. –

4

, 나는 그것이

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

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