繁体   English   中英

HTML解码和编码

[英]HTML Decode and Encode

我试图对我的MVC 3 Razor应用程序中的数据库中的html文本进行解码。 数据库中的html文本未编码。 我尝试httpUtility.decode,server.decode,但是它们都不起作用。 最后我设法使其与Html.raw(string)

非工作代码示例

@Server.HtmlDecode(item.ShortDescription)
@HttpUtility.HtmlDecode(item.ShortDescription)

您知道为什么我不能使用html.decode吗!

我以为这样可以节省几个小时的时间。

它可以很好地解码文本,但是当使用@语法将其放入页面时,它将自动再次进行编码。

Html.Raw方法将字符串包装在HtmlString ,这告诉剃刀引擎在将其放入页面时不要对其进行编码。

如果您想按原样显示值而没有任何HTML编码,则可以使用Html.Raw帮助器:

@Html.Raw(item.ShortDescription)

警告您,这样做会使您的网站受到XSS攻击,因此您应该非常小心此ShortDescription属性包含的HTML。 如果是用户输入,则应绝对确保它是安全的。 您可以为此使用AntiXss库

您知道为什么我不能使用html.decode吗!

因为Html.Decode返回一个字符串,并且当您将字符串提供给@() Razor函数时,它会自动由Html再次对其进行编码,并破坏您以前的工作。 这就是Html.Raw助手存在的原因。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM