0

我有一个使用 jquery 的 ASP.NET MVC 服务器应用程序和客户端代码。我想使用 ajax 将对象从客户端传输到服务器并返回。在服务器上,我基本上只是验证和序列化它们。在客户端,我有一些 UI 代码来创建视觉表示和一些其他代码来管理一些对象属性。

我的问题是:对我来说,整理这些物体的最佳方式是什么?我目前的想法只是从我的控制器操作中传回一个包装为 JsonResult 的对象,但我不确定在客户端完成处理后将对象传回 MVC 世界的最佳方式。我可以构建一个 JSON 字符串并将其作为控制器操作的字符串参数传递回 MVC,我必须手动将 JSON 解压缩为 .NET 类型。有没有办法更自动地映射到 .NET 类型,或者其他一些可以帮助防止此处出现错误的“便利”机制(即使我必须编写那个便利机制)?

这似乎与 ModelBinder 的想法非常相似,也许我只是被我打算使用 jquery 将 JSON 推送回服务器而不是拥有“常规”表单帖子的想法所迷惑。我可以以某种方式使用 ModelBinder 将客户端提供的 JSON 转换为 .NET 端的快乐模型类型吗?

4

1 回答 1

4

您不必手动将 JSON 解压缩为 .NET 类型。您有各种库可以为您执行此操作。我个人更喜欢JSON.NET。你所要做的就是这样的:

var deserializedObject = JsonConvert.DeserializeObject<ObjectType>(json);

如果您不想依赖第三方库,只需使用 Microsoft 的 JavaScriptSerializer:

var serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
var deserializedObject = serializer.Deserialize<ObjectType>(json);

微软的 JavaScriptSerializer 文档

于 2009-05-27T23:03:00.340 回答