javascript - 将具有未知属性的 JavaScript 对象发送到 asp.net MVC Controller

标签 javascript asp.net-mvc json asp.net-mvc-3 jquery

我已经阅读了很多关于如何将 JavaScript 对象发送到 asp.net MVC Controller 的博客和 stackoverflow 答案。但是到目前为止我看到的所有示例都要求您知道 JavaScript 对象将具有哪些属性(因为它们都将 JavaScript 对象转换为 C# 对象)。

当我在 asp.net webforms 中使用 PageMethods 时,我可以发送任何复杂的 JavaScript 对象或数组(甚至是分层数据),并且它会被转换成一个我可以迭代的字典。我有机会在 asp.net MVC 中做类似的事情吗?

最佳答案

我现在找到了一种适合我的方法。

  1. 我正在将我的数据转换为 json,并在我的 ASP.net MVC Controller 中将其作为字符串接收。
  2. 然后我使用 json.net库来读取数据 - 因为这个库允许我读取数据而无需将其转换为 C#(或 VB)对象。

JavaScript 代码:

//first include the json2 library for older browsers and jQuery
$.post(url, {json: JSON.stringify(mydata)});

服务器端代码:

public void xyz(string json)
{
    JObject j = JObject.Parse(json);
    string name = (string)j.SelectToken("Products[0].Name");
    //...
}

好处:它是“普通”json,这意味着它不是一些不常见的格式或接口(interface)类型。

编辑:我发现如果我使用的是 .net 4,我什至不需要 C# json-library - 因为我可以借助JavaScriptSerializer:

JavaScriptSerializer jss = new JavaScriptSerializer();
Dictionary<string, object> data = (Dictionary<string, object>) jss.Deserialize<dynamic>(json_string);

关于javascript - 将具有未知属性的 JavaScript 对象发送到 asp.net MVC Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7121439/

相关文章:

javascript - 有哪些选项可将 URL 参数传递到 JavaScript 应用程序

javascript - 跨浏览器Javascript数字精度

javascript - HTML 数据抓取(我认为)

javascript - 使用隐藏输入字段替换数据库中的条目 - Entity Framework

c# - 渲染作为 Markdown 上传并将服务器端转换为 Html 的 Html 是否安全?

asp.net-mvc - ASP.NET Web API 模型绑定(bind)

java - 在java中使用fromJson时自动转换

javascript - 为什么 Javascript slider 会破坏我的 css flex 布局?

c# - 如何将两个 float 组的 JSON 解析为两个列表?

ios - 如何解析本地文件中的json数据?