【发布时间】:2010-12-01 06:52:57
【问题描述】:
我正在开发一个将 JSON 对象(使用 jQuery Post 方法)发布到服务器端的网站。
{
"ID" : 1,
"FullName" : {
"FirstName" : "John",
"LastName" : "Smith"
}
}
同时,我在服务端为这个数据结构写了类。
public class User
{
public int ID { get; set; }
public Name FullName { get; set;}
}
public class Name
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
当我在控制器类中使用以下代码运行网站时,FullName 属性不会被反序列化。我究竟做错了什么?
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Submit(User user)
{
// At this point, user.FullName is NULL.
return View();
}
【问题讨论】:
-
MVC 不支持开箱即用的 JSON 反序列化,但我们正在考虑为 v2.0 添加它。同时,您可以使用 JavaScriptSerializer 将请求正文转换为完全水合的 User 对象。
-
@Levi - 这应该是一个回答帖子;)
-
这很奇怪;不知何故,ID 属性被正确反序列化。如果我使用 JavaScriptSerializer,Submit() 的输入参数会是 Object 类型吗?
-
我只是使用 jQuery 表单库,它只是像普通表单一样发布它。如果你不能这样做,我会使用自定义模型绑定器。
标签: c# jquery asp.net-mvc json