2011-09-07 80 views
2

如何对控制器的操作JSON对象MVC asp.net序列化工作?如何MVC asp.net系列化工作有关控制器操作JSON对象?

比如我有一个自定义的对象,如果用JSON发送一个Ajax请求对象向服务器动作

public ActionResult(List<CustomObject> abc) 
{ 
    // Object is serialized automatically how MVC is doing it is the question. 
} 

为什么我问这是我的一些对象无法正常serialzed因此原因数据丢失是存在的,那我也恢复到字符串值serializaiton的老方法。

public ActionResult(string abc) 
{ 
    JavaScriptSerializer serializer = new JavaScriptSerializer(); 

    List<CustomObject> lstabc = serializer.Deserialize<List<CustomObject>>(abc); 
} 

这是我想避免和其次哪些是做JSON对象序列化MVC Asp.net最好的库?

+0

我认为你需要编写自己的JsonResult类(用于控制适当的扩展方法)。 Afaik用于.NET的最佳JSON库是Newtonsoft.JSON(可在NUGet上获得) – MattDavey

回答

1

的deserialisation由模型绑定的照顾。

,如果你发现它不工作,你可以创建自己的自定义模型绑定,并与框架注册它 - 这应该意味着你能避免在控制器的所有deserialisation噪音。

有一些链接的这个解释和如何实现以下SO问题自定义模型粘合剂:

ASP.Net MVC Custom Model Binding explanation

一个比较流行的JSON序列化图书馆是newtonsoft json.net库 - 我用它有效地多次:

http://james.newtonking.com/pages/json-net.aspx

祝你好运!

相关问题