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

前端之家收集整理的这篇文章主要介绍了asp.net-mvc-3 – 是否可能显示从ASP.NET MVC 3中的数据库的原始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)。

猜你在找的asp.Net相关文章