Frage

Ich habe ASP.NET -Webformulare und ASP.NET MVC für einen bestimmten Zeitraum verwendet.

So <%= %> in Ansichten bedeuten Response.Write(), <%: %> In MVC eingeführt wird HTML -Flucht.

In sqldatasource Control erzeugt Designer so etwas ConnectionString="<%$ ConnectionStrings:FooConnectionString %>" Und in Repeater, die Sie verwenden <%# Eval("") %> Sytax.

Meine Frage ist, was genau tun <%$ %> und <%# %> Tags, in welche Methoden haben sie sich verwickelt und wie verhalten sie sich?

War es hilfreich?

Lösung

<%$ %> ist der Ausdruckssyntax.

Es gibt einige integrierte Abkürzungen für Appsetings, Ressourcen und Verbindungsstrings. Du kannst auch schreibe dein Eigenes.

<%# %> ist der Datenbindungsausdrucksyntax.

Dies wird in Datenbanksteuerungen verwendet, um Eigenschaftswerte aus dem zugeordneten Objekt zu beheben.

Andere Tipps

Ich habe diesen Text vor einiger Zeit aus einem Buch (ich kann mich nicht erinnern) abgeschnitten, als ich dachte, er habe das erklärt <%# %> Syntax gut -

Diejenigen unter Ihnen, die mit klassischen ASP -Anwendungen vertraut sind, denken möglicherweise, dass die < %# %> -Syntax sehr vertraut aussieht. Es ist zweckmäßig ähnlich, aber Sie müssen sicherstellen, dass Sie die beiden nicht verwirren, da Ihre Bewerbung nicht ordnungsgemäß funktioniert. Während in ASP (und ASP.NET) die < %= %> -Syntax verursacht, was in den Klammern zur Rendernzeit bewertet wird, werden die für ASP.NET einzigartigen < %# %> -Krackets nur während der Bindung bewertet. Wie Sie später in diesem Abschnitt sehen werden, haben die Seite und jede bindbare Steuerung auf der Seite eine Datenbank () -Methode. Die in den Datenbindungsklammern enthaltenen Ausdrücke (< %# %>) werden nur dann bewertet, wenn die Datenbankmethode der Steuerung aufgerufen wird.

Das beantwortet nur die Hälfte Ihrer Frage, aber Rob Stevenson-Leggetts hervorragende Antwort deckt alles andere ab. Ich dachte nur, ich würde dies über eine weitere Illustration hinzufügen.

Ich habe einen Blog -Beitrag über die verschiedenen Arten von Ausdrücken geschrieben, die in ASP.NET -Webformularen verfügbar sind:

Ausdrücke vs. Anweisungen, Teil 2: ASP.NET -Code -Blocktypen (Internetarchiv)

Es erklärt die folgenden Ausdruckblöcke:

<%$ %>

ASP.NET -Expressionssyntax, verwendet, um an Anwendungseinstellungen, Verbindungszeichenfolgen und Ressourcen zu binden.

<%# %>

ASP.NET-Datenbindungssyntax wurde nur beim Aufrufen einer Datenbindungsmethode der Steuerung ausgewertet.

<% %>

Codeblöcke, der Code wird Teil von RenderMethodDelegate. Der Code sollte Anweisungen sein. Verwenden Response.Write etwas ausgeben.

<%= %>

Gleich wie oben, außer dass der Code ein einzelner Ausdruck sein sollte. Es wird eingepackt sein HtmlTextWrite.Write().

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top