如何将.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>";
你可以做这样的事情(没有经过测试,我自己从未使用过,但它显示了一般要点和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"
}