2010-12-12 5 views
10

우선 저는 Razor 뷰 엔진에서 MVC 3 RC1을 사용하고 있습니다.HtmlHelper 확장 메서드에 대한 HTML 인코딩

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 도우미 확장있어

@Html.TabbedMenuItem("Home", "Index", "Home") 

내가있어 문제는 MVC가 자동으로하는 HTML을 인코딩이라는 것이다

<li>Home</li> 

사람이 당신의 HTML 도우미 확장에 대한 자동 인코딩을 사용하지 않도록 설정하는 방법을 알고 있나요 : 내가 얻을 수있는 모든 문자열의 인코딩 된 버전보기에 결과? 사전 앤디

+1

는 MVC는 당신이 보길 원하는 수있는 System.Web.Mvc.TagBuilder 클래스가 있습니다. IHtmlString을 반환해야하는 필요성을 없애지는 않지만이 작업을 위해 StringBuilder보다 많은 기능을 제공합니다. –

답변

21
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에서

감사합니다. 도움이 되길 바랍니다.

+0

완벽하게 작동합니다. 감사합니다 takepara 많이 주셔서 감사합니다. – AndyM

+0

이것은 'MvcHtmlString'일까요, 아니면 더 이상 ASP.NET MVC 3의 경우입니까? – ehdv

+1

@ehdv 좋은 질문입니다; 나는 그것을 봤 거든 (this) [http://stackoverflow.com/a/3382908/295686] (HtmlString은 .NET 4 이상에서 선호된다) – mlhDev

관련 문제