我正在做一个自定义的htmlhelper,它的目的是构建一个ul
,问题是它返回encoded html
并且我无法绕过它。我试图使用html.raw()
但没有成功。想法?
的HtmlHelper
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)))
答案 0 :(得分:1)
liTag.SetInnerText()
转义您传递的文字
您想要设置liTag.InnerHtml
。
此外,您需要HTML-escape name
。