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

c# – ASP.NET MVC将原始HTML从Controller传递到View

发布时间:2020-12-15 18:35:39 所属栏目:百科 来源:网络整理
导读:我已经对这个问题感到头疼了几天,我不确定这是否是我的环境或代码本身的问题,这是基于ASP.NET MVC(尽管我有5年的C#经验).我正在使用最新的Win7x64和VS 2008的干净安装以及所有补丁. 我有一个存储在数据库表中的原始HTML,它由控制器根据我无法控制的一些规则
我已经对这个问题感到头疼了几天,我不确定这是否是我的环境或代码本身的问题,这是基于ASP.NET MVC(尽管我有5年的C#经验).我正在使用最新的Win7x64和VS 2008的干净安装以及所有补丁.

我有一个存储在数据库表中的原始HTML,它由控制器根据我无法控制的一些规则有选择地加载.不幸的是,当尝试将值填充到控件中的视图数据时,如下所示:

ViewData["HTMLData"] = DAO.HTMLDataGet();

当我看到输出时,它被转义/ HTML编码.我尝试使用以下所有这些似乎无法解决此问题:

<%: HttpUtility.HtmlDecode(ViewData["HTMLData"].ToString())%>

和…

<%: Server.HtmlDecode(ViewData["HTMLData"].ToString())%>

和…

<%: Html.Raw(ViewData["HTMLData"].ToString())%>

…它从数据库表中抓取原始HTML就好了,但无论我尝试什么,它都会强制执行blasted编码.根据我在MSDN上阅读的内容,有一个关于HTML没有被正确解码的问题的脚注,其中包含空格(我的确如此).既然我怀疑我是唯一一个面对这个问题的人,我会向你们寻求一些想法.

我即将以我的方式克服我的方式,在视图中使用正则表达式来进行页面清理,但是我认为在我强行推断之前先从其他人那里得到一些建议会更好.谢谢你提前.

解决方法

<%:表示“必要时编码”.如果你不想那样,那么懒惰的方法就是使用<%=,但坦率地说,我建议你把它包装在IHtmlString中,例如:
string yourEncodedHtml = ...
var html = new MvcHtmlString(yourEncodedHtml);

现在,如果您存储并显示它,它应该采用html“按原样”.

(编辑:李大同)

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

    推荐文章
      热点阅读