Как преобразовать вывод .aspx в JSON? - PullRequest
1 голос
/ 24 февраля 2012

Мне нужно преобразовать вывод страницы .aspx в объект JSON (из-за запроса ASON JSONP).

На самом деле с этой страницы:

<%@ 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.

Как я могу это сделать?

EDIT Вкратце: я хочу добавить контекст .aspx к элементу на стороне клиента! Запрос перекрестный, поэтому мне нужен JSONP, для которого нужен JSON! Итак, что я ищу, так это: возьмите HTML (в виде строки) и вставьте объект JSON. Нравится result.myHtmlString="<div class='myClass'>Hello</div>";

Ответы [ 2 ]

1 голос
/ 24 февраля 2012

вы могли бы сделать что-то подобное (не тестировал, никогда не использовал его сам, но он показывает общий смысл и 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);

Без использования Serializer:

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

JSON - это строка!

0 голосов
/ 24 февраля 2012

Обратите внимание, что ваша страница результатов находится не в JSON, а в HTML:

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

В JSON это будет примерно так:

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

Таким образом, вы можете переместить свою логику в задний код или попытаться найти некоторые средства визуализации.
В настоящее время трудно сказать, что вы пытаетесь сделать - вернуть HTML через JSON?

ОБНОВЛЕНИЕ: Если вы хотите вернуть HTML клиенту, просто оберните его так:

{
    html: "YOUR RESULT HTML HERE"
}
...