With the new Razor View Engine, should my HtmlHelpers return string or IHtmlString?

筅森魡賤 提交于 2019-12-03 01:11:23

In most cases you should return an instance of IHtmlString. That's the pattern followed by the built-in helpers* and it means that the consumer of a helper does not need to worry about under- or over-encoding.

Instead of using the Raw function you should probably just return a new instance of HtmlString.

public static IHtmlString MyCoolHelperMethod(this HtmlHelper helper) {
    return new HtmlString("<p>Hello World</p>");
}

*Note that MVC 3 actually uses MvcHtmlString as the return type of its helpers but this is a holdover from the MVC 2 days. (Complicated story, but in short, IHtmlString was only introduced in .NET 4 and since MVC 2 supported .NET 3.5 the MvcHtmlString type was introduced as an intermediate step). All helpers targetting MVC 3 and higher should return IHtmlString.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!