在我的特殊情况下,我有几个解决问题的方法。我想找出哪一个更可行。在这种情况下,我也可以通过从服务器端代码返回一个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事件,这是如何实现的?
- 2015年8月26日更新2-
当我问这个问题的时候,我处理这个问题的方式是在另一个方面。我现在对这个主题更精通了,可以很高兴地接受投票最多的答案,因为这个问题的方法显然不应该包括已经存在的JSON,并像@DavGarcia
也建议的那样从代码中输出一个新的JSON。
发布于 2010-03-11 15:01:28
在Page_Load中,您需要清除正常输出并编写自己的输出,例如:
string json = "{\"name\":\"Joe\"}";
Response.Clear();
Response.ContentType = "application/json; charset=utf-8";
Response.Write(json);
Response.End();
要将C#对象转换为JSON,可以使用诸如Json.NET之类的库。
考虑使用Web Service (asmx)或WCF,两者都可以输出JSON,而不是让您的.aspx页面输出JSON。
发布于 2010-03-11 14:28:26
用asp做这件事没有问题……用MVC做这件事是最自然的,但也可以用标准的asp做。
MVC框架为JSON提供了各种各样的helper类,如果可以,我建议您参考MVC-love,如果没有,您可以很容易地获取MVC使用的JSON助手类,并在asp.net的上下文中使用它们。
编辑:
下面是一个使用MVC返回JSON数据的示例。这将在您的控制器类中。这是MVC的开箱即用功能--当你创建一个新的MVC项目时,这个东西会自动创建,所以它没有什么特别之处。我唯一要做的就是返回一个JSON的actionResult,我调用的JSON方法是控制器类上的一个方法,这都是非常基本的,默认的MVC的东西:
public ActionResult GetData()
{
var data = new { Name="kevin", Age=40 };
return Json(data, JsonRequestBehavior.AllowGet);
}
此返回数据可以通过JQuery作为ajax调用调用,如下所示:
$.get("/Reader/GetData/", function(data) { someJavacriptMethodOnData(data); });
发布于 2012-11-19 07:35:41
使用ASP.NET网页,您可以在单个页面上执行此操作,作为基本的GET示例(这是可以工作的最简单的事情。
var json = Json.Encode(new {
orientation = Cache["orientation"],
alerted = Cache["alerted"] as bool?,
since = Cache["since"] as DateTime?
});
Response.Write(json);
https://stackoverflow.com/questions/2422983
复制相似问题