0

为什么我的 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 元素标签。我不知道为什么。

谢谢

4

1 回答 1

1

当您在代码块中使用冒号 (:) 时,它会自动对输出进行 HTML 编码。(有关更多信息,请参阅我答案)

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

<asp:ListView ID="lv" runat="server" ItemType="WebApplication1.ItemClass">
    <ItemTemplate>
        <asp:Literal runat="server" Text='<%# Item.HtmlText %>' />
    </ItemTemplate>
</asp:ListView>
于 2013-08-02T09:22:53.670 回答