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 に答える