我需要将.aspx页面的输出转换为JSON对象(由于JSONP Ajax请求)。
事实上这个页面:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="mypage.aspx.cs" Inherits="folder_mypage" %>
<div class="myClass">Hello</div>
$.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上下文!请求是跨doman,这就是为什么我需要JSONP,结果需要JSON!所以,我正在寻找的只是这样:获取HTML(作为字符串)并放入一个JSON对象。与result.myHtmlString="<div class='myClass'>Hello</div>";
答案 0 :(得分:1)
你可以做这样的事情(没有经过测试,我自己从未使用它,但它显示了一般的要点和js-serializer)
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);
不使用Serializer:
String html = new TextReader("page.aspx").ReadToEnd();
String json = "{ Html: '" + html + "'}";
return json;
json是一个字符串!
答案 1 :(得分:0)
您应该注意,您的结果页面不在JSON
中,而在HTML
中:
<div class="myClass">Hello</div>
在JSON中它会是这样的:
{
"div":
{
myclass: "John"
},
...
}
因此,您可以将逻辑移到代码隐藏处,或尝试查找一些渲染器 目前很难说你想做什么 - 通过JSON返回HTML?
<强>更新强> 如果要将HTML返回给客户端,只需将其包装如下:
{
html: "YOUR RESULT HTML HERE"
}