2011-03-22 4 views
0

문제는 컨트롤러에서 값을 수신 할 수 없다는 것입니다. 무엇이 잘못 될 수 있습니까? 코드는 여기에 있습니다.asp.net mvc 3 json 값 컨트롤러에서 수신하지 않는

$('#save').click(function() { 

     var UserLoginViewModel = { UserName: $('vcr_UserName').val(), 
      Password: $('vcr_Password').val() 
     }; 
     $.ajax({ 
      url: "/User/Login", 
      data: JSON.stringify(UserLoginViewModel), 
      contenttype: "application/json; charset=utf-8", 
      success: function (mydata) { 
       $("#message").html("Login"); 
      }, 
      error: function() { 
       $("#message").html("error"); 
      }, 
      type: "POST", 
      datatype: "json" 
     }); 
     return false; 
    }); 
}); 

    [HttpPost] 
    public ActionResult Login(UserLoginViewModel UserLoginViewModel) 
    { 

    } 

답변

1

게시 본에서 json을 가로 채기 위해 조치 필터 또는 유사 항목이 필요할 것입니다.

여기에 선발

Provider Factory

이다 그러나 여기에서 날 위해 정렬 된 기사입니다 On Haacked

당신이 필요로하는 경우에 당신은 당신이 전면에 deserialising하는 유형을 알고 있다면 좋지만, 다형성을 사용하면 이러한 아이디어를 액션 필터에서 사용하게됩니다.

+0

MVC 3에는 JSON 모델 바인딩에 대한 지원이 내장되어 있습니다. –

3

MVC3을 사용함에 따라 내장 JSON 모델 바인딩을 활용할 수 있어야합니다. , contentTypedataType가 올바른 contentType이/데이터 유형을 최대 POST 후

jQuery ajax docs

(가 대문자 "T"를해야한다) ... 소문자 :

귀하의 코드 예제는 오타의 몇 가지를 가지고 MVC는 자동으로 개체를 게시 된 JSON에 바인딩해야합니다.

+0

고마워요! 나는 misspelt 옵션에 대해서도 같은 문제가있었습니다. – Neil

관련 문제