如何将.aspx的输出转换为JSON

本文关键字:转换 JSON 输出 aspx | 更新日期: 2023-09-27 18:25:44

我需要将.aspx页面的输出转换为JSON对象(由于JSONP Ajax请求)。

事实上,这个页面:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="mypage.aspx.cs" Inherits="folder_mypage" %>
<div class="myClass">Hello</div>

使用jQuery,在ajax调用之后:

$.ajax({
    url: 'http://myownajax.projects.it/folder/mypage.aspx',
    dataType: 'jsonp',
    success: function(result) {
        console.log("it is ok");
    },
    error: function(jqXHR, textStatus, errorThrown) {
        console.log(textStatus + " - " + errorThrown);
    }                
});

我得到parsererror - SyntaxError: class is a reserved identifier这就是为什么我需要将"页面的输出"转换为JSON元素。

我该怎么做?

编辑简而言之:我想在一个元素上附加一个.aspx上下文,客户端!请求是跨域的,这就是为什么我需要JSONP,它需要JSON作为结果!所以,我想要的只是:将HTML(作为字符串)放入JSON对象中。类似result.myHtmlString="<div class='myClass'>Hello</div>";

如何将.aspx的输出转换为JSON

你可以做这样的事情(没有经过测试,我自己从未使用过,但它显示了一般要点和js序列化程序)

class Result{
  public String Html{get;set;}
}
TextReader txtread = new TextReader("page.aspx");
string text = txtread.ReadToEnd();
var res = new Result(){Html=text};
JavaScriptSerializer serializer = new JavaScriptSerializer();
var json = serializer.Serialize(res);

不使用序列化程序:

String html = new TextReader("page.aspx").ReadToEnd();
String json = "{ Html: '" + html + "'}";
return json;

json是一个字符串!

您应该注意,您的结果页面不在JSON中,而是在HTML:中

<div class="myClass">Hello</div>

在JSON中,它应该是这样的:

{
    "div": 
    { 
        myclass: "John"
    },
    ...
}

因此,您可以将逻辑移到代码后台,或者尝试查找一些渲染器
目前很难说你想做什么——通过JSON返回HTML?

更新:如果你想将HTML返回给客户端,只需像这样包装:

{
    html: "YOUR RESULT HTML HERE"
}