这几天我一直在摸不着头脑,我不确定这是我的环境问题还是基于 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,但是无论我尝试什么,它都会继续强制执行该爆炸编码。从我在 MSDN 上阅读的内容来看,有一个脚注是关于由于 HTML 未正确解码而导致的问题,其中包含空格(我的就是这样)。因为我怀疑我是唯一一个面临这个问题的人,所以我向你们寻求一些想法。
我打算用正则表达式来进行页面清理,但我认为最好先从其他人那里得到一些建议,然后再强行使用它。提前致谢。