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

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....