问题是我无法在控制器中收到任何值。什么可能是错的?代码在这里。
$('#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)
{
}
答案 0 :(得分:3)
当您使用MVC3时 - 您应该能够利用内置的JSON模型绑定。
您的代码示例有一些拼写错误:contentType
和dataType
是小写的...(它们应该有一个大写的“T”)
在您发布正确的contentType / dataType后,MVC应自动将您的对象绑定到发布的JSON。
答案 1 :(得分:1)
你需要一个动作过滤器或类似的来拦截帖子主体的json。
这是一个启动器
但是这篇文章为我排序On Haacked
如果您知道要预先反序列化的类型,那就太好了,但是如果您需要多态,那么您最终会在动作过滤器中使用这些想法。