gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 14:41:23 25 4
gpt4 key购买 nike

这几天我一直在摸不着头脑,我不确定这是我的环境问题还是基于 ASP.NET MVC 的代码本身(尽管我在 ASP.NET MVC 方面有 5 年的经验) C#)。我正在使用最近干净安装的 Win7x64 和 VS 2008 以及所有补丁。

我将原始 HTML 存储在数据库表中, Controller 根据一些我无法控制的规则有选择地加载该表。不幸的是,当尝试将值填充到控件中的 View 数据中时:

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

当我看到输出时,它是经过转义/HTML 编码的。我尝试使用以下所有方法似乎都无法解决此问题:

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

还有……

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

还有……

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

...它可以很好地从数据库表中获取原始 HTML,但是无论我尝试什么,它都会一直强制执行该爆炸式编码。从我在 MSDN 上读到的内容来看,有一个脚注是关于 HTML 未正确解码而导致的问题,其中包含空格(我的是这样)。由于我怀疑我是唯一遇到过这种情况的人,所以我向你们寻求一些想法。

我正准备通过在 View 中使用正则表达式来进行页面清理,但我认为最好先从其他人那里获得一些建议,然后再强制执行它。提前致谢。

最佳答案

<%: 表示“必要时编码”。如果您不想这样,那么惰性 方法就是使用 <%= , 但坦率地说,我建议您将其包装在 IHtmlString 中,例如:

string yourEncodedHtml = ...
var html = new MvcHtmlString(yourEncodedHtml);

现在,如果您存储那个并显示它,它应该“按原样”使用 html。

关于c# - ASP.NET MVC 将原始 HTML 从 Controller 传递到 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12033578/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com