我在做一个自定义的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)))
liTag.SetInnerText()
转义您传递的文本。
您要设置liTag.InnerHtml
.
另外,您需要 HTML 转义name
.