我是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);
    }
}

10-05 20:47
查看更多