在ASP.NET MVC 3中解码HTML

Fil*_*erg 12 asp.net razor asp.net-mvc-3

@ 在asp.net mvc 3预览1自动编码html,是否有另一种方法让html?

想一想这个场景:

@view.BestSitesEver.Replace("stackoverflow", "<h1>StackOverflow</h1>")

那只会打印出来: <h1>stackoverflow</h1>

Bui*_*ted 19

你可以用它

@MvcHtmlString.Create(site.Replace("stackoverflow", "<h1>stackoverflow</h1>"))
Run Code Online (Sandbox Code Playgroud)

这将输出没有编码的html字符串

@(new HtmlString(site.Replace("stackoverflow", "<h1>stackoverflow</h1>")))
Run Code Online (Sandbox Code Playgroud)

并且有Erik Porter的评论

  • 从MVC 3开始,您不再需要使用MvcHtmlString.@(new HtmlString("<h1> StackOverflow </ h1>"))将正常工作.IHtmlString的任何实现都可以.我们正在考虑将来为您创建新HtmlString的帮助器或快捷方式. (12认同)

Dav*_*her 14

现在有点晚了,但MVC3中有一个方便的扩展方法:Html.Raw():

@Html.Raw(site.Replace("stackoverflow", "<h1>stackoverflow</h1>"))
Run Code Online (Sandbox Code Playgroud)