我已经创建了一个这样的 html 帮助器方法
public static class abcExtensions
{
public static string Label1(this HtmlHelper helper, string target, string text)
{
return String.Format("<label for='{0}'>{1}</label>", target, text);
}
}
但其他鞋子累死我用它喜欢
@Html.Label1(..)
它呈现这样的编码的文本
< = 'aa' 标签 > qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq < / 标签 >
我不想使用 @Html.Raw
如何呈现而不是编码文本的 Html?
您需要返回 IHtmlString
返回 Html 编码的字符串喜欢;
public static IHtmlString Label1(this HtmlHelper helper, string target, string text)
{
return new HtmlString(String.Format("<label for='{0}'>{1}</label>", target, text));
}
HtmlString
换行被假定为不需要 HTML 编码的字符串。它实现了 IHtmlString
,所以,当调用 HttpUtility.HtmlEncode(htmlString)
的字符串不能编码。
你可以看到这张贴以及这也解释了更多时候你应该使用 HtmlString
所说︰
你应该记住是Razor将一切编码默认情况下,但是通过在你的 html 帮助器使用 MvcHtmlString 你可以告诉Razor,它并不需要对其进行编码
如果你有兴趣看看它是如何工作,你总能看到源代码。