【问题标题】:Decoding HTML in ASP.NET MVC 3在 ASP.NET MVC 3 中解码 HTML
【发布时间】:2011-04-09 14:55:16
【问题描述】:

@ in asp.net mvc 3 preview 1 自动编码html,有没有另一种方法让html有?

想想这个场景:

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

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

【问题讨论】:

  • 这个“stackoverflow”参数是什么?一个div?

标签: asp.net razor asp.net-mvc-3


【解决方案1】:

你可以用这个

@MvcHtmlString.Create(site.Replace("stackoverflow", "<h1>stackoverflow</h1>"))

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

@(new HtmlString(site.Replace("stackoverflow", "<h1>stackoverflow</h1>")))

还有埃里克·波特的评论

【讨论】:

  • 从 MVC 3 开始,您不再需要使用 MvcHtmlString。 @(new HtmlString("

    StackOverflow

    ")) 可以正常工作。 IHtmlString 的任何实现都可以。我们正在考虑在未来为您创建新的 HtmlString 的助手或快捷方式。
【解决方案2】:

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

@Html.Raw(site.Replace("stackoverflow", "<h1>stackoverflow</h1>"))

【讨论】:

  • 有没有办法让它在声明性帮助器中工作(即 - 在 App_Code 中)?看起来所有的 Html 助手都坏了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-15
  • 1970-01-01
相关资源
最近更新 更多