HTML ASP.NET 网络表单转发器中 Eval 数据库列值的解码

HTML Decoding of Eval database column value in repeater of ASP.NET webforms

我正在尝试从数据库中获取 HTML 编码值(由响应式文本编辑器控件处理和输入)并将其解码以在网络表单页面中显示为普通纯文本。

我可以在转发器中使用 Eval 方法获取值,如下所示

<p><%#Eval("Content")%></p>

它工作得很好。我进一步尝试使用以下代码

来缩短它
<%#Eval("Content").ToString().Length >= 170 ? Eval("Content").ToString().Substring(0, 170) : Eval("Content").ToString()%>

是否需要,前提是数据库值是纯文本,而不是我最近添加的 HTML 编码的文本,因此它停止工作了。

因此,我想知道我是否可以使用下面的代码来解码编码

<%=System.Web.HttpUtility.HtmlDecode()%>

我试过这样做但没有成功,如果以下代码有误(我认为),有人可以帮助或纠正我

<%=System.Web.HttpUtility.HtmlDecode(#Eval("Content"))%>

我相信你需要:

<%# System.Web.HttpUtility.HtmlDecode(Eval("Content")) %>

<%= 等同于 Response.Write<%# 是数据绑定语法,这正是您在这种情况下所需要的。 Eval 调用中的哈希前缀语法无效。

这是解释各种 ASP.NET 内联服务器标签之间差异的有用参考:http://weblogs.asp.net/ahmedmoosa/embedded-code-and-inline-server-tags