0

我正在尝试从标准 WebForm 返回简单的 Json 数据。这听起来很愚蠢,但我确实需要这样做。我正在使用 MVC,这是我使用的仅有的 3 个不是 MVC 视图的页面之一。否则,我会编写一个控制器来返回 Json(myData),但我不能这样做。

这是我正在做的事情:

        var serializer = new JavaScriptSerializer();
        var json = serializer.Serialize(someObject);
        HttpContext.Current.Response.ContentType = "application/json";
        HttpContext.Current.Response.Write(json);
        HttpContext.Current.Response.End();

但是,我不断收到一个浏览器对话框,要求我处理该网页,这意味着它正在尝试下载该页面...?

我错过了什么?

我的解决方案...

我能够通过将我的 ContentType 更改为“text/html”来解决问题(是的,即使它是 Json 数据)。:( 虽然这不是正确的方法,但它对我有用,因为在我的整个解决方案中只有 Mvc 视图会调用它。

4

2 回答 2

2

我已经检查了您的代码及其正确性。实际上响应类型是application/json并且浏览器尝试打开一个对话框以在某些应用程序中打开它。如果您发送 ajax 请求,您可以通过 javascript 获取响应、解析和显示数据。

于 2010-02-13T13:35:00.663 回答
1

最重要的问题是你想对数据做什么。如果你只是像页面请求的结果一样传递它,浏览器不知道如何处理它是很正常的。如果您想以某种方式处理它,则必须将其连接到某个地方(更新页面上某些内容的异步请求?)。

无论如何,如果您只想使用页面来返回数据,那么使用 HttpHandler(扩展名为 ashx 的文件)可能会更好,当您不需要通常的 WebForm 必须执行的所有呈现生命周期时,它是一种更轻量级的替代方案。

于 2010-02-13T13:31:53.880 回答