Кодирование HTML для метода расширения HtmlHelper
прежде всего, я использую MVC 3 RC1 с движком просмотра Razor. У меня есть расширение HTML helper, которое выглядит так:
public static string TabbedMenuItem(this HtmlHelper htmlHelper, string text, string actionName, string controllerName) {
StringBuilder builder = new StringBuilder();
builder.Append("<li>");
builder.Append(text);
builder.Append("</li>");
return builder.ToString();
}
и на вид это называется так:
@Html.TabbedMenuItem("Home", "Index", "Home")
проблема в том, что MVC автоматически кодирует результат HTML в представлении, поэтому все, что я получаю, это закодированная версия строки:
<li>Home</li>
кто-нибудь знает, как отключить автоматическую кодировку для вашего помощника HTML расширения?
спасибо заранее Энди!--4-->
2 ответов
public static IHtmlString TabbedMenuItem(this HtmlHelper htmlHelper, string text, string actionName, string controllerName)
{
StringBuilder builder = new StringBuilder();
builder.Append("<li>");
builder.Append(text);
builder.Append("</li>");
return MvcHtmlString.Create(builder.ToString());
}
использовать возвращаемое значение IHtmlString. Надеюсь, это поможет.