[英]Dynamic HTML code through .cs code using Literal control
我正在尝试从后端文件(.cs)生成HTML代码以在.aspx中生成输出。 我无法弄清楚为什么当我不使用方法调用而直接使用Text =“ HTML”时,文字控件在正确输出的情况下工作得很好。 但是,如果我使用方法调用Text =“ <%#:methodCall()%>,则输出只是一个字符串,并且没有给出正确的输出。
这就是我的意思:
直接文字版本:
<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) %>
这对您有用吗?
<asp:Literal ID="literal" Mode="PassThrough" runat="server" Text="<%# Server.HtmlEncode(getDetails()) %>"/>
您需要将以下代码添加到文件后面的代码中
protected void Page_Load(object sender, EventArgs e)
{
this.DataBind();
}
或者,您可能只在需要文本的地方使用<% =getDetails() %>
而不是使用文字控件
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.