Как получить доступ к ViewData в JavaScript - PullRequest
4 голосов
/ 03 марта 2010

У меня проблема с доступом к объекту ViewData через JavaScript.

Я установил объект ViewData на контроллере и на document.ready событие представления, которое я пытаюсь увидеть содержимое этого же объекта ViewData, например:

     var test = <%= ViewData["NAME"].ToString() %>;
     alert(test);

После этого я не получаю сообщение с предупреждением, и ни один из моих сценариев после этого оператора не будет запущен. Я предполагаю, что этот скрипт недействителен, поэтому убивает все впоследствии. Я попробовал несколько разных вариантов этого сценария, но безуспешно.

Что мне здесь не хватает?

Спасибо заранее, Билли

Ответы [ 2 ]

14 голосов
/ 03 марта 2010

Попробуйте добавить кавычки вокруг вывода:

var test = '<%= ViewData["NAME"].ToString() %>';
alert(test);

Edit:

Я заметил, что вы используете NAME для ключа; может ли это имя когда-либо содержать одну кавычку? Если возможно, что какое-либо значение будет когда-либо содержать его, вы захотите что-то вроде этого, чтобы ваша страница больше не ломалась (хотя технически это больше похоже на работу контроллера или модели):

var test = '<%= ViewData["NAME"].ToString().Replace("'", "\\'") %>';
alert(test);
5 голосов
/ 03 марта 2010

1001 * попробовать *

var test = '<%= ViewData["NAME"].ToString() %>';
alert(test);

(обратите внимание на кавычки <%= %>)

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