Я согласен с тем, что документация кажется вводящей в заблуждение для MvcHtmlString
.
Однако, MvcHtmlString
предназначен для использования, когда вы не хотите, чтобы строка была закодирована в HTML. Поведение бритвы по умолчанию заключается в кодировании выходных данных.
Передаваемая ему строка Html уже должна быть закодирована, чтобы обеспечить ее вывод без дополнительного кодирования.
Итак, предположим следующий HTML-помощник:
public static class HtmlHelper
{
public static string GetHtmlString(this System.Web.Mvc.HtmlHelper htmlHelper)
{
return "<h1>myHeading</h1>";
}
public static MvcHtmlString GetMvcHtmlString(this System.Web.Mvc.HtmlHelper htmlHelper)
{
return MvcHtmlString.Create("<h1>myHeading</h1>");
}
}
В режиме Razor:
@Html.GetHtmlString()
@Html.GetMvcHtmlString()
Вывод будет:
<h1>myHeading</h1>
myHeading