【发布时间】:2014-09-09 00:19:37
【问题描述】:
我正在尝试从后端文件 (.cs) 生成 HTML 代码以生成 .aspx 格式的输出。我无法弄清楚为什么当我不使用方法调用并直接使用 Text="HTML" 时,文字控件在正确输出的情况下工作得非常好。但是,如果我使用方法调用 Text=",则输出只是一个字符串,并且没有给出正确的输出。
这就是我的意思:
直接文本版本:
<asp:Literal ID="literal" Mode="PassThrough" runat="server" Text="<b>bold</b><br/><i>italic</i><br/>"/>
输出:
粗体
斜体
方法调用版本:
<asp:Literal ID="literal" Mode="PassThrough" runat="server" Text="<%#: getDetails() %>"/>
输出:
<b>bold</b><br/><i>italic</i><br/>
方法是:
public string getDetails()
{
return "<b>bold</b><br/><i>italic</i><br/>";
}
预期结果:
粗体
斜体
有人可以向我解释为什么会发生这种情况以及如何解决这个问题吗?
编辑:
我打算做数据绑定,所以最后会是……
<%#: getDetails(string, string, string, string) %>
【问题讨论】:
-
当你使用 时,它看起来像是对输出进行 HTML 编码。我很确定您可以使用 在代码隐藏上调用一个方法,这可以避免编码。
-
@CraigW。虽然这确实解释了结果,但数据绑定不会 AFAIK 应用除转换为字符串之外的任何编码/转换。