我是ASP新手。我想制作一个ASP页面,该页面将按请求返回JSON格式的数据。我遵循了一些教程,现在我所看到的就是完整的页面链接和代码中的回调。因此,从本质上讲,服务器输出了许多HTML,这些HTML显然不是有效的JSON。因此,我唯一的问题是如何制作这样的网页。我希望设计我的应用程序,以便当我进入网页时,说http://localhost:8080
(或类似内容)时,我的C#代码中的回调或函数会连接到数据库,收集一些信息并将其发送回数据库。使用有效JSON的响应。我不是在寻找可以实现相同效果的库,而是想像如何通过简单地使用一组Response.Write
语句来实现它。
如果我可能会认为我与我的概念不一致,请原谅我,因为我真的很陌生。
任何帮助是极大的赞赏。
问候,
p1n3appl3
编辑:我目前正在使用以下JavaScript代码:
var xhr = new XMLHttpRequest();
xhr.open("POST", "http://localhost:47949/Default.aspx/NameChange");
xhr.onreadystatechange = function () {
if (xhr.readyState == 4 && xhr.status == 200) {
alert(xhr.responseText);
}
}
xhr.send("");
它可以进行调用,并且一切正常,但是问题在于它再次返回了“ Default.aspx”页面的整个代码。我的意思是,甚至没有调用方法
NameChange
(我已经通过设置断点测试了此方法)。我究竟做错了什么?
最佳答案
您可以在页面上定义PageMethod:
public partial class _Default : Page
{
[WebMethod]
public static SomeObject GetObject()
{
SomeObject result = ... fetch from db or something
return result;
}
}
或者您也可以使用JavaScriptSerializer类手动执行此操作:
public partial class _Default : Page
{
protected void Page_Load(object sender, EventArgs e)
{
Response.Clear();
Response.ContentType = "application/json";
SomeObject result = ... fetch from db or something
var serializer = new JavaScriptSerializer();
string json = serializer.Serialize(result);
Response.Write(json);
}
}