当前位置:  开发笔记 > 后端 > 正文

编写/输出未转义的HTML字符串

如何解决《编写/输出未转义的HTML字符串》经验,为你挑选了4个好方法。

我已经在数据库表中保存了安全/清理的HTML.

如何在Razor视图中写出此HTML内容?

它总是逃避字符<和&符号&.



1> Lorenzo..:

假设您的内容位于名为mystring... 的字符串中

您可以使用:

@Html.Raw(mystring)

或者,您可以将字符串转换为在模型HtmlString中实现的任何其他类型IHtmlString或直接内联并使用常规@:

@{ var myHtmlString = new HtmlString(mystring);}
@myHtmlString


@Lorenzo,+我使用最新的MVC 3和`razor`语法和`Html.Raw`绝对可以使用.

2> Tom Chantler..:

在ASP.NET MVC 3中你应该这样做:

// Say you have a bit of HTML like this in your controller:
ViewBag.Stuff = "
  • Menu
  • " // Then you can do this in your view: @MvcHtmlString.Create(ViewBag.Stuff)


    我更喜欢这种方法,因为如果传递的字符串为null,HTML.Raw会爆炸.

    3> Andrus..:

    您可以使用

    @{ WriteLiteral("html string"); }
    


    WriteLiteral为+1,不知道那一个
    这对我来说太棒了,在Hangfire应用程序中使用Razor发送电子邮件......`Html.Raw()`在那里不起作用

    4> Travis J..:

    有时使用原始html可能会很棘手.主要是因为XSS漏洞.如果这是一个问题,但你仍然想使用原始html,你可以编码可怕的部分.

    @Html.Raw("(" + Html.Encode("" + "Hello") + ")")
    

    结果是

    (<script>console.log('insert')</script>Hello)
    

    推荐阅读
    乐韵答题
    这个屌丝很懒,什么也没留下!
    DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
    Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有