Почему мой собственный результат HTML Helper получает кодирование HTML? - PullRequest
26 голосов
/ 26 января 2011

У меня есть следующий пользовательский помощник html в asp.net mvc 3

public static string RegisterJS(this HtmlHelper helper, ScriptLibrary scriptLib)
{
   return "<script type=\"text/javascript\"></script>\r\n";
}

Проблема в том, что в результате код html получается так (пришлось добавить пробелы, чтобы показатьправильный результат:

   &lt;script type=&quot;text/javascript&quot;&gt;&lt;/script&gt;

Это, очевидно, не очень помогает мне ... Ничто из того, что я читал, ничего не говорит об этом ... есть мысли о том, как я могу получить свой реальный результат?

1 Ответ

38 голосов
/ 26 января 2011

Вы вызываете помощника в блоке Razor @ или блоке ASPX <%: %>.
Эти конструкции автоматически экранируют свой вывод.

Вам нужно изменить помощника, чтобы он возвращал HtmlString, который не будет экранирован:

return new HtmlString("<script ...");
...