c# - MVC asp.net 序列化如何在 Controller 操作上为 Json 对象工作?

标签 c# asp.net-mvc-3

MVC asp.net 序列化如何在 Controller 操作上为 Json 对象工作?

例如我有一个自定义对象,如果向服务器操作发送一个带有 JSON 对象的 ajax 请求

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

我问这个的原因是我的一些对象没有正确序列化,因此存在数据丢失,然后我必须恢复到字符串值序列化的旧方法。

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

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

我想避免哪些,其次哪些是进行 JSON 对象序列化 MVC Asp.net 的最佳库?

最佳答案

反序列化由模型绑定(bind)器负责。

如果您发现它不起作用,您可以创建自己的自定义模型绑定(bind)器并将其注册到框架 - 这应该意味着您可以避免 Controller 中的所有反序列化噪音。

在以下 SO 问题中有一些链接指向对此的解释以及如何实现自定义模型绑定(bind)器:

ASP.Net MVC Custom Model Binding explanation

较流行的 json 序列化库之一是 newtonsoft json.net 库——我多次有效地使用它:

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

祝你好运!

关于c# - MVC asp.net 序列化如何在 Controller 操作上为 Json 对象工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7330555/

相关文章:

c# - 将 Dapper 查询映射到对象集合(它本身有几个集合)

c# - 使每个 block 内的更改持久化

c# - ASP.Net MVC 将标签值回发到您的 Controller

asp.net-mvc-3 - 提高 WebMail 性能 MVC3

c# - 使用按键模拟短信样式打字

c# - 如何在 Web API 的异步方法中返回 Void

c# - PrintDialog/XPS Document Writer 中忽略的纸张大小

javascript - 将 Html.Raw() 存储在 Javascript、ASP.NET MVC 3 的字符串中

asp.net-mvc-3 - MVC 2/MVC 3/MVC 4中的嵌套区域

c# - 从 byte[] 返回文件在 MVC 3 中无法正常工作