使用Razor View Engine,只要将字符串直接输出到页面,就可以进行HTML编码。例如。:
@"
Hello World
"实际上会输出到页面为:
<p>Hello World </p>
浏览器会显示为:
< p> Hello World< / p>
这里的问题是,当创建Html帮助者时,直到现在,使用旧的aspx视图引擎,我只是返回一个字符串,并输出到浏览器:
所以我的问题基本是这样的。我这样做:
public static IHtmlString MyCoolHelperMethod(this HtmlHelper helper)
{
return new helper.Raw("
Hello World
");}
在这种情况下,我可以在我的cshtml中做到这一点:
@Html.MyCoolHelperMethod();
或者我这样做:
public static string MyCoolHelperMethod(this HtmlHelper helper)
{
return "
Hello World
";}
在这种情况下,我需要在我的cshtml中做这些工作:
@Html.Raw(Html.MyCoolHelperMethod());
显然,第一种方法使视图看起来更加清洁,但我只是想知道,常见的模式实际上是帮助者返回一个IHtmlString,而且我以前一直在做错。