Передача строк с Single Qoute из MVC Razor в JavaScript - PullRequest
17 голосов
/ 22 апреля 2011

Это кажется таким простым, это стыдно. Тем не менее, первый вопрос заключается в том, что при передаче значения из нового ViewBag в MVC 3.0 (Razor) в блок JavaScript это правильный способ сделать это? И что еще более важно, где и как вы применяете правильный код замены строки, чтобы предотвратить появление одинарной кавычки & # 39, как в приведенном ниже предупреждении?

Добавление этого в один блок скрипта:

alert('@ViewBag.str')   // "Hi, how's it going?"

Выводит следующее предупреждение:

enter image description here

1 Ответ

33 голосов
/ 22 апреля 2011

Razor будет HTML кодировать все, поэтому, чтобы предотвратить кодирование 'в ', вы можете использовать

alert('@Html.Raw(ViewBag.str)');

Однако, теперь у вас есть фактический 'в середине вашей строки, который вызывает ошибку javascript. Чтобы обойти это, вы можете заключить строку предупреждения в двойные кавычки (вместо одинарных кавычек) или экранировать символ '. Итак, в вашем контроллере у вас будет

ViewBag.str = "Hi, how\\'s it going?";
...