【问题标题】:Why my asp:Literal control doesn't work in a asp:ListView ItemTemplate为什么我的 asp:Literal 控件在 asp:ListView ItemTemplate 中不起作用
【发布时间】:2013-08-02 09:10:57
【问题描述】:

为什么我的 asp:Literal 控件在 asp:ListView ItemTemplate 中不起作用? ASP.NET 4.5 Web 窗体

ASPX 代码:

 <asp:ListView ID="lv" runat="server" ItemType="WebApplication1.ItemClass">
                <ItemTemplate>
                    <asp:Literal runat="server" Text='<%#: Item.HtmlText %>' />
                </ItemTemplate>
            </asp:ListView>

背后的ASPX代码:

    this.lv.DataSource = new ItemClass[] {
                    new ItemClass() { HtmlText = "<p>Hello 01<br/>blablabla</p>"},
                    new ItemClass() { HtmlText = "<p>Hello 02<br/>blablabla</p>"},
                    new ItemClass() { HtmlText = "<p>Hello 03<br/>blablabla</p>"}
};

                this.lv.DataBind();

我的对象类:

public class ItemClass
{
    public string HtmlText { get; set; }
}

我的页面上的结果:

<p>Hello 01<br/>blablabla</p> <p>Hello 02<br/>blablabla</p> <p>Hello 03<br/>blablabla</p> 

我可以看到 html 元素标签。我不知道为什么。

谢谢

【问题讨论】:

    标签: asp.net .net webforms


    【解决方案1】:

    当您在代码块中使用冒号 (:) 时,它会自动对输出进行 HTML 编码。 (更多信息见我的回答here

    要解决这个问题,只需从代码中删除冒号,它看起来像这样:

    <asp:ListView ID="lv" runat="server" ItemType="WebApplication1.ItemClass">
        <ItemTemplate>
            <asp:Literal runat="server" Text='<%# Item.HtmlText %>' />
        </ItemTemplate>
    </asp:ListView>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-21
      • 2018-07-21
      相关资源
      最近更新 更多