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)。

相关文章

引言 本文从Linux小白的视角, 在CentOS 7.x服务器上搭建一个...
引言: 多线程编程/异步编程非常复杂,有很多概念和工具需要...
一. 宏观概念 ASP.NET Core Middleware是在应用程序处理管道...
背景 在.Net和C#中运行异步代码相当简单,因为我们有时候需要...
HTTP基本认证 在HTTP中,HTTP基本认证(Basic Authenticatio...
1.Linq 执行多列排序 OrderBy的意义是按照指定顺序排序,连续...