@{ var myHtmlString = new HtmlString(mystring);}
@myHtmlString
2
在ASP.NET MVC 3中你应该这样做:
// Say you have a bit of HTML like this in your controller:
ViewBag.Stuff = "<li>Menu</li>"
// Then you can do this in your view:
@MvcHtmlString.Create(ViewBag.Stuff)
6 回答
假设您的内容位于名为
mystring
的字符串中...您可以使用:
或者,您可以将字符串转换为HtmlString或在模型中实现
IHtmlString
或直接内联的任何其他类型,并使用常规@
:在ASP.NET MVC 3中你应该这样做:
您可以使用
有时使用原始html可能会很棘手 . 主要是因为XSS漏洞 . 如果这是一个问题,但你仍然想使用原始html,你可以编码可怕的部分 .
结果是
您可以将您的字符串放入控制器中的viewdata,如下所示:
然后在视图中调用viewdata,如下所示:
除了使用Dommer建议的
@MvcHtmlString.Create(ViewBag.Stuff)
之外,我建议你也使用AntiXSS库作为建议phill http://haacked.com/archive/2010/04/06/using-antixss-as-the-default-encoder-for-asp-net.aspx它编码几乎所有可能的XSS攻击字符串 .