MVC3 RC2 JSON Post绑定无法正常工作

Mik*_*ike 4 asp.net-mvc json model-binding

我已经看过关于这个主题的其他帖子,并且已经摆弄了变化,但仍然无法让JSON模型绑定正常工作.

我在global.asax.cs Application_Start方法中有以下内容:

ValueProviderFactories.Factories.Add(new JsonValueProviderFactory());
Run Code Online (Sandbox Code Playgroud)

回发后的数据如下所示:

{"UserName":"Mike","Password":"password","Persist":true}
Run Code Online (Sandbox Code Playgroud)

我的PoCo:

public class UserLoginViewModel {
    public string UserName { get; set; }
    public string Password { get; set; }
    public bool Persist { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

控制器方法正确触发,但具有UserName = null,Password = null和Persist = false的默认UserLoginViewModel对象; 签名看起来像这样:

[HttpPost]
public ActionResult Logon(UserLoginViewModel model) {
    if (ModelState.IsValid) { 
    ...
Run Code Online (Sandbox Code Playgroud)

Mik*_*ike 14

问题出在客户端!我没有设置contentType.

$.ajax({
    url: location.href, 
    type: "POST",
    data: ko.toJSON(this),
    datatype: "json",
    **contentType: "application/json charset=utf-8",**
    success: function (data) { alert("success"); }, 
    error: function (data) { alert("error"); }
});
Run Code Online (Sandbox Code Playgroud)