如何从ASP.NET页面返回JSON对象?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (15)

在我的特殊情况下,我有几个解决方案来解决我的问题。我想找出哪一个更可行。在这种情况下,我也可以通过从服务器端代码返回一个JSON对象来实现我的目标; 但是,我不知道它是如何完成的,以及实现它的最佳方式是什么。

首先,我不需要一个完整的aspx页面,因为我只需要从代码返回的响应。那么,我是否会使用Web服务,处理程序,还是有其他特定方法来执行此操作?

这个解决方案可行吗?我是否使用StringBuilder该类构建JSON字符串并将该字符串注入到目标aspx页面中?我应该注意哪些预防措施或事项?

假设我在我的userlist.aspx页面中有一个JSON对象,然后使用jQuery ...

{"menu": {
  "id": "color1",
  "value": "color",
  "popup": {
    "menuitem": [
      {"value": "Red"},
      {"value": "Green"},
      {"value": "Yellow"}
    ]
  }
}} // example taken from the json.org/example page

现在,当我想从我的aspx页面添加一个新的菜单项时,我该怎么做......我认为这种方式我的问题是更具体的...

让我们假设我在aspx代码中创建一个新的字符串,就像这样"{"value": "Blue"}。我如何将其注入到目标页面中已有的项目列表中?或者这是不是这种情况的正确方法?如果不是的话,还有什么可以实现的呢?

另外,如果我想在将新项目添加到此列表时触发jQuery事件,那么这是如何实现的?

提问于
用户回答回答于

在Page_Load中,需要清除正常输出并编写自己的输出,例如:

string json = "{\"name\":\"Joe\"}";
Response.Clear();
Response.ContentType = "application/json; charset=utf-8";
Response.Write(json);
Response.End();

要将C#对象转换为JSON,可以使用Json.NET之类的库。

不要让.aspx页面输出JSON,而应考虑使用Web Service(asmx)或WCF,它们都可以输出JSON。

扫码关注云+社区