передача paranter из asp.net в java-скрипт с помощью JSON в html - PullRequest
0 голосов
/ 13 октября 2010

Я хочу передать некоторый объект JSON в ответе HTML и проверить его в клиенте.Я использовал следующий код на сервере:

 TagBuilder tag = new TagBuilder("script");
            tag.Attributes.Add("Id", id);
            tag.Attributes.Add("type", "text/html");
            tag.SetInnerText(new JavaScriptSerializer().Serialize(content));
            return MvcHtmlString.Create(tag.ToString());

, и я пытаюсь оценить его в клиенте:

var p = eval("(" + pEl.html() + ")");

, но он не работает из-за кодирования, поэтому я должен декодировать егоэто:

var p = eval("(" + pEl.html().replace(/"/g,"'") + ")");

но это кажется неприятным, я пытаюсь использовать <% =%> вместо <%:%> на стороне сервера, но он остался прежним.Любая идея, чтобы решить проблему?Есть лучший способ передачи JSON по HTML-ответу.Спасибо

1 Ответ

2 голосов
/ 13 октября 2010

Попробуйте это:

TagBuilder tag = new TagBuilder("script");
tag.Attributes.Add("type", "text/javascript");
string json = new JavaScriptSerializer().Serialize(content);
tag.InnerHtml = "var p = " + json + ";";
return MvcHtmlString.Create(tag.ToString());

Здесь объявляется глобальная переменная javascript с именем p, которая содержит объект json, который вы можете использовать везде в своих скриптах, и вам не нужно беспокоиться о замене кавычек или вызове eval. Вы можете назвать эту переменную, используя параметр id, например, если вы не хотите, чтобы она называлась p.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...