c# - 使用 ASP .net 制作一个返回 JSON 格式数据的简单页面

标签 c# asp.net

我是 ASP 新手。我想制作一个 ASP 页面,该页面将根据请求返回 JSON 格式的数据。我遵循了一些教程,现在我所看到的只是一个完整页面的链接,在我的代码中带有回调。所以从本质上讲,服务器正在输出大量 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);
    }
}

关于c# - 使用 ASP .net 制作一个返回 JSON 格式数据的简单页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6641301/

相关文章:

c# - 关于 c#.net 应用程序与 MySql 通信的问题

c# - XSockets 和 Asp.Net 4.0 网站项目

javascript - SQL 结果到 JavaScript 变量

c# - 如何使用 ADO.NET 将 ref 变量传递给 SQL 存储过程?

c# - 当我们创建并启动一个新的 .NET 线程时,它会创建一个新的操作系统级线程吗?

c# - 编译时在输出窗口中查看所有命令行

asp.net - Google 404 和 .NET 自定义错误页面

c# - get_PropertyName()/set_PropertyName() 与 PropertyName?

c# - 发送 httprequest 以接收一些数据

c# - 无法打开文档,因为存在具有意外内容类型的无效部分