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
我正在尝试从数据库中获取 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