4 Stimmen

<%: %> Syntax für HTML-Kodierung in einem Repeater

Seit .NET 4 ist es möglich, die <%: %>-Syntax für die HTML-Kodierung von Text zu verwenden.

In einem Repeater verwende ich die folgende Syntax zur Anzeige von Daten

<%# DataBinder.Eval(Container.DataItem, "fieldlabel")%>

Die einzige Möglichkeit, die ich kenne, um die Ausgabe im Repeater zu kodieren, ist die Verwendung von "Server.HtmlDecode". Ist es möglich, das neue <%: %> in einem Repeater nur in Kombination mit Databinding zu verwenden, so dass ich die hässliche HtlmDecode-Syntax entfernen kann. Oder ist eine Erweiterungsmethode meine einzige Option, um die Lesbarkeit zu verbessern?

7voto

freefaller Punkte 18556

Ab dem ASP.NET 4.5 ist dies möglich unter Verwendung der neuen <%#: %> Notation

2voto

Kelsey Punkte 46346

Nein, das ist nicht möglich. Die <%# ermöglicht die Evaluierung von verbindlichen Daten, verwendet aber die grundlegende <% Block.

Das Einzige, was Sie tun können, ist die Wiederherstellung der <%: indem Sie Ihren Code in Html.Encode .

Beispiel:

<%# Html.Encode(DataBinder.Eval(Container.DataItem, "fieldlabel")) %> 

En <%: ist eine Abkürzung, und ich vermute, dass nicht jede Variante der Verwendung der Blöcke erfasst wurde, um eine Abkürzung einzuschließen. MS wollte das Problem wahrscheinlich nicht verkomplizieren, indem es eine Menge verschiedener Symbole für die verschiedenen Verwendungen erstellt und nur die gängigste Verwendung unterstützt.

1voto

Doug Chamberlain Punkte 11069

Ich denke, die Antwort lautet nein, wenn man diese Frage betrachtet.

Bedeutung der verschiedenen Symbole in der .aspx-Seite von asp.net

0voto

Racks Punkte 11

Es ist möglich, aber wir müssen mehr arbeiten:

Bitte verwenden Sie die folgende Syntax

<asp:Literal ID="fieldlabel" runat="server" Mode="Encode" Text='<%#Eval("fieldlabel")%>"></asp:Literal>

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X