2012-02-24 49 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