加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc-3 – 是否可能显示从ASP.NET MVC 3中的数据库的原始

发布时间:2020-12-15 21:09:50 所属栏目:asp.Net 来源:网络整理
导读:我在我的数据库中有一个表,其中的一个属性是一个Html页面(没有html,head和body标签),我打算把它放在我的一个视图的中间 – 我称之为cotroller方法接受一个参数,并返回一个传递此html大字符串作为模型的视图。我搜索它(不是很多,我承认),并找到以下方法
我在我的数据库中有一个表,其中的一个属性是一个Html页面(没有html,head和body标签),我打算把它放在我的一个视图的中间 – 我称之为cotroller方法接受一个参数,并返回一个传递此html大字符串作为模型的视图。我搜索它(不是很多,我承认),并找到以下方法:
<%= System.Web.HttpUtility.HtmlDecode(yourEncodedHtmlFromYouDatabase) %>

那被发现here in stackoverflow.当我尝试一个类似的剃刀aproach,我结束了这:

@System.Web.HttpUtility.HtmlDecode("<h1>Test</h1>")

这是想法,但它没有像我计划的工作。

解决方法

你所需要的是:@ Html.Raw(yourEncodedHtmlFromYouDatabase)

我假设数据库中的html已经被正确地清理(或至少从可靠的源),因为如果没有,你可能开始自己跨站点脚本攻击。

你的方法不工作的原因是Razor HTML编码输出默认情况下(每次你使用@显示的东西)。 Html.Raw告诉Razor你信任的HTML,你想显示它,而不进行编码它(因为它已经是原始的HTML)。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读