c# - 如何在 MVC 3 Controller 中获取动态创建的 Json 数据集?

标签 c# javascript asp.net-mvc json

好的,我正在使用 MVC 3,它非常适合将 JSON 数据集反序列化为传递给我的 Controller 操作的强类型对象。不幸的是,我还没有找到更动态的情况的解决方案。

内置的 Json 反序列化和类是否支持“未定义”属性集?例如,假设我有一些固定数据,例如姓名和年龄,但我还想传递动态创建的评级列表,用户可以在其中输入(或选择)电影并在表中设置评级值。

模型数据结构可能是这样的:

public class UserRatings
{
  public string Name { get; set; }
  public int Age { get; set; }
  public Dictionary<string,int> Ratings { get; set; }
}

但是假设我的 Json 数据集在 javascript 中看起来像这样:

var data = { Name: name, Age: age, Ratings: rating };

其中评级变量是一个动态构造的对象,由电影的名称(或 id)作为键和评级作为数字组成。当然, Controller 操作中的反序列化不会成功,因为它不理解评级到相当复杂的字典对象的映射。但是是否有一个通用的 Json 集合可以用来代替评级作为中间格式?

我尝试在 javascript 中将评级对象设为 Json 字符串,然后只发送一个字符串,但我无法找到“工厂”或可以在 C# 中创建 Json 结构的东西,我可以对其进行迭代以获取数据输出。类 JsonJsonResult 在这方面似乎对我没有帮助。基本上,我如何使用 MVC 中内置的 Json 支持来将我自己的反序列化为一些通用的 Json 集合对象?

最佳答案

您可以使用JavaScriptSerializerDataContractSerializer与一些 Action 过滤器。它们非常灵活

关于c# - 如何在 MVC 3 Controller 中获取动态创建的 Json 数据集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5473156/

相关文章:

c# - 不同阶次贝塞尔曲线之间的转换

c# - String.Empty 不是 Const 有什么具体原因吗?

javascript - 在 Internet Explorer 中获取 SELECT 框的值

javascript - 单击单选按钮时,显示/隐藏具有动态变化的 ID 或类的 div

c# - 为什么我的 AJAX 请求没有扩展 OWIN MVC session ?

javascript - 页面未通过调用 RedirectToAction 刷新

c# - UWP-App 创建的文件未在 Windows 10 1803 中编制索引

c# - 如何从 Type 变量创建 Nullable<T>?

javascript - 正确使用show元素onclick

asp.net-mvc - 是否可以从浏览器中查看 MVC View 结构?