2012-02-24 76 views
1

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

其实这个页面:

<%@ 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>";

+0

,也许你正在寻找如何实现的东西喜欢这个? http://json.fastfrag.org/ – mindandmedia 2012-02-24 11:41:22

+0

不是真的!该字符串被“解析”为JSON对象!我需要的是采取整个HTML并把它(作为字符串)result.myHtmlString =“

Hello
”; – markzzz 2012-02-24 11:42:38

+0

你现在明白我需要什么吗? – markzzz 2012-02-24 11:43:06

回答

1

你可以做这样的事情(未测试,从未使用过它自己,但它显示了一般要点和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是一个字符串!

+0

哦......好的,就这样!该死的,我得到这个错误在jQuery,调用后...'parsererror - 错误:jQuery1710912841784877329_1330084304383未被调用' – markzzz 2012-02-24 11:53:39

+1

看起来像一个新的问题。只是接受这个问题,并发布一个新问题,并确保包含产生错误的代码。干杯! – mindandmedia 2012-02-24 12:01:30

0

你应该注意到,您的结果页面是不是在JSON,但在HTML

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

在JSON它会是这样的:

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

因此可以把你的逻辑到代码隐藏,或尝试找到一些渲染器。
目前很难说你想做什么 - 通过JSON返回一个HTML?

UPDATE: 如果您想将HTML返回给客户端,只需把它包这样的:阅读对方的回答和您的评论后

{ 
    html: "YOUR RESULT HTML HERE" 
} 
+0

恩,是啊!我在寻找的是这样的:将结果页面(HTML)转换为JSON,这样我就可以管理它的客户端!我认为整个HTML作为一个字符串,并插入到JSON对象? – markzzz 2012-02-24 11:28:33

+0

我想追加一个.aspx上下文到一个元素,客户端!请求是跨平台的,这就是为什么我需要JSONP,因此需要JSON。所以,我正在寻找的只是:取HTML(作为一个字符串)并放入一个JSON对象。 Like result.myHtmlString =“

Hello
”; – markzzz 2012-02-24 11:39:46

+0

如何在C#上“包装它”? – markzzz 2012-02-24 11:41:24