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)
{
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
当您使用 MVC3 时,您应该能够利用内置的 JSON 模型绑定。
您的代码示例有几个拼写错误:
contentType
和dataType
是小写的...(它们应该有一个大写的“T”)jQuery ajax 文档
在您发布正确的 contentType/dataType 后,MVC 应该自动将您的对象绑定到发布的 JSON。
As you're using MVC3 - you should be able to take advantage of the built in JSON model binding.
Your code example has a couple of typos:
contentType
anddataType
are lowercase...(they should have an uppercase "T")jQuery ajax docs
After you POST up the correct contentType/dataType, MVC should automatically bind your object to the posted JSON.
您将需要一个操作过滤器或类似的过滤器来拦截帖子正文中的 json。
这是一个入门
Provider Factory
但这里是为我排序的文章 已被黑客攻击
如果您预先知道要反序列化的类型,那就太好了,但如果您需要多态性,您最终将在操作过滤器中使用这些想法。
You're going to need an action filter or similar to intercept the json from the post body.
Here's a starter
Provider Factory
but here is the article that sorted this for me On Haacked
It is good if you know the type you are deserialising into up front, but if you need polymorphism you'll end up using these ideas in an action filter.