2012-11-13 5 views
1

사용자 정의 htmlhelper를하고있어, 그 목적은 ul을 구축하는 것입니다, 문제는 그게 encoded html을 반환하고 나는 그것을 얻을 수 없다는 것입니다. html.raw()을 사용해 보았는데 성공하지 못했습니다. 아이디어?사용자 정의 HtmlHelper 인코딩 된 htmlhelper

Html 헬퍼

public static MvcHtmlString TopMenu(this HtmlHelper helper, IEnumerable<string> names) 
{ 
    var ulTag = new TagBuilder("ul"); 

    foreach (var name in names) 
    { 
     var liTag = new TagBuilder("li"); 

     liTag.SetInnerText(string.Format("<img src='{0}' alt='alt' />{1}", name, name)); 
     ulTag.InnerHtml += liTag.ToString(TagRenderMode.Normal); 
    } 

     return MvcHtmlString.Create(ulTag.ToString(TagRenderMode.Normal)); 
} 

내보기

@Html.Raw(Html.TopMenu(CodeTesting.Models.NamesList.Names(20))) 

답변

1

liTag.SetInnerText()텍스트 당신이 그것을 통과를 이스케이프합니다.
liTag.InnerHtml으로 설정하려고합니다.

또한 HTML 탈출 name이 필요합니다.

+0

작품입니다. html-escape 이름은 어떻게 필요합니까? –

+0

@ Dejan.S :'helper.AttributeEncode'를 호출하십시오. – SLaks

+0

나는 여기서 당신을 따라, 당신은 예제와 함께 보여줄 수 있을까? 감사합니다 –

관련 문제