我必须在这里丢失一些东西,因为this doc
说,MvcHtmlString.Create("someStringHere")
返回html编码的字符串,但是如果我有类似MvcHtmlString.Create("<h1>myHeading</h1>")
的内容,它仍显示为
<h1>myHeading</h1>
那那句话的意思
MvcHtmlString.Create(String)
使用指定的文本值创建一个HTML编码的字符串。
我无法理解,如果有人可以解释文档的含义,以及他们试图引用的编码与html编码之间的区别是什么,将不胜感激。
谢谢!
答案 0 :(得分:3)
我同意文档似乎误导了MvcHtmlString
。
但是,MvcHtmlString
用于不希望字符串进行HTML编码的情况。剃刀的默认行为是对输出进行编码。
您传递给它的HTML字符串应该已经被编码,以确保输出时不需要其他编码。
因此,假设使用以下HTML帮助器:
public static class HtmlHelper
{
public static string GetHtmlString(this System.Web.Mvc.HtmlHelper htmlHelper)
{
return "<h1>myHeading</h1>";
}
public static MvcHtmlString GetMvcHtmlString(this System.Web.Mvc.HtmlHelper htmlHelper)
{
return MvcHtmlString.Create("<h1>myHeading</h1>");
}
}
在“剃刀”视图中:
@Html.GetHtmlString()
@Html.GetMvcHtmlString()
输出为:
<h1>myHeading</h1>