我已经看过关于这个主题的其他帖子,并且已经摆弄了变化,但仍然无法让JSON模型绑定正常工作。
我在global.asax.cs Application_Start方法中有以下内容:
ValueProviderFactories.Factories.Add(new JsonValueProviderFactory());
回发后的数据如下:
{"UserName":"Mike","Password":"password","Persist":true}
我的PoCo:
public class UserLoginViewModel {
public string UserName { get; set; }
public string Password { get; set; }
public bool Persist { get; set; }
}
控制器方法正常触发但具有UserName = null,Password = null和Persist = false的默认UserLoginViewModel对象;签名如下所示:
[HttpPost]
public ActionResult Logon(UserLoginViewModel model) {
if (ModelState.IsValid) {
...
答案 0 :(得分: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"); }
});