[英]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.