Есть ли функция утилиты для экранирования JavaScript в представлениях ASP.NET MVC? Мне часто нужно запустить небольшой фрагмент JavaScript, используя некоторые значения из представления; например, у меня может быть что-то вроде:
<script type="text/javascript">
var page = new Page({ currentUser: "<%= Model.UserName %>" });
page.init();
</script>
Я бы ожидал чего-то вроде:
<script type="text/javascript">
var page = new Page({ currentUser: "<%= Html.JavaScriptEscape(Model.UserName) %>" });
page.init();
</script>
Я мог бы, конечно, написать эту функцию сам. Но поскольку уже встроенные утилиты формируют HTML-кодирование, и поскольку одна из точек продажи ASP.NET MVC заключается в том, что <%% > является режимом рендеринга по умолчанию, и поскольку то, что я пытаюсь достичь, вполне Общим, это заставляет меня задаться вопросом, почему я не могу найти ничего подобного уже встроенного. Есть, например, простой и элегантный способ сериализации объекта в JSON в представлениях?
Или я что-то делаю против принципов ASP.NET MVC? Когда я сталкиваюсь с такой проблемой, обычно это заставляет думать, что либо Im делает что-то неправильно, так как я предполагаю, что дизайнеры фреймворка потратили некоторое время на размышления о реальных сценариях мира.