Übersicht über ASP.NET-Ausdrücke

Aktualisiert: November 2007

ASP.NET-Ausdrücke stellen eine deklarative Art dar, um Eigenschaften von Steuerelementen auf Grundlage von Informationen festzulegen, die zur Laufzeit ausgewertet werden. Ausdrücke können beispielsweise verwendet werden, um eine Eigenschaft auf Werte festzulegen, die auf Verbindungszeichenfolgen, Anwendungseinstellungen oder anderen Werten basieren, die in den Konfigurations- und Ressourcendateien einer Anwendung enthalten sind. Ausdrücke werden zur Laufzeit während der Analyse der deklarativen Elemente einer Seite ausgewertet, und die Syntax des Ausdrucks wird durch den vom Ausdruck dargestellten Wert ersetzt. (Da Ausdrücke zur Analysezeit ausgewertet werden, können sie nicht dynamisch im Code erstellt werden.)

Ausdrücke werden häufig in Datenquellensteuerelementen verwendet, um auf eine Verbindungszeichenfolge zu verweisen. Anstatt die Verbindungszeichenfolge direkt als Eigenschaftenwert in das Datenquellensteuerelement aufzunehmen, können Sie einen Ausdruck verwenden, der angibt, wo sich die Verbindungszeichenfolge in der Konfigurationsdatei befindet. Der Ausdruck wird zur Laufzeit aufgelöst, indem die Verbindungszeichenfolge aus der Konfigurationsdatei gelesen wird. Ausdrücke lassen sich für alle Eigenschafteneinstellungen verwenden, die Sie nicht als statischen Wert festlegen, sondern erst zur Laufzeit auflösen möchten.

Ausdrücke erleichtern die Verwaltung einer Anwendung auf verschiedene Weisen:

  • Sie können den Code in der Anwendung reduzieren, indem Sie deklarativ auf dynamische Informationen verweisen. Dadurch müssen Sie keinen Code schreiben, um Eigenschaftenwerte zur Laufzeit festzulegen.

  • Sie können die gleichen Einstellungen in mehreren Steuerelementen wiederverwenden. Wenn Sie beispielsweise eine Verbindungszeichenfolge in der Datei Web.config speichern und in den Seiten mit Ausdrücken darauf verweisen, können Sie Änderungen an der Verbindungszeichenfolge zentral vornehmen anstatt in den einzelnen Steuerelementen.

  • Sie können vertrauliche Informationen wie Verbindungszeichenfolgen-Anmeldeinformationen (oder andere Anwendungsdaten) in der Datei Web.config speichern und anschließend verschlüsseln.

  • Wenn Sie einen visuellen Designer wie Visual Studio verwenden, können Sie zum Erstellen von Ausdrücken die entsprechenden Tools im Designer nutzen.

Ausdrücke sind erweiterbar, sodass Sie eine eigene Ausdruckssyntax definieren können. Es können dann Ausdrücke erstellt werden, mit denen der benutzerdefinierte Ausdruckshandler aufgerufen wird, der mithilfe der benutzerdefinierten Logik einen Wert zurückgibt.

Allgemeine Syntax

Die Grundsyntax eines ASP.NET-Ausdrucks lautet folgendermaßen:

<%$ expressionPrefix: expressionValue %>

Das Dollarzeichen ($) zeigt ASP.NET an, dass ein Ausdruck folgt. Das Ausdruckspräfix definiert den Ausdruckstyp, z. B. AppSettings, ConnectionStrings oder Resources. Hinter dem Doppelpunkt (:) folgt der eigentliche Ausdruckswert, der von ASP.NET aufgelöst wird.

Die Ausdruckssyntax ist an keine bestimmte .NET-Sprache gebunden. Die Ausdruckssyntax ist dieselbe, egal ob Sie in Ihren ASP.NET-Seiten Visual Basic, C# oder für eine andere Programmiersprache verwenden.

Verbindungszeichenfolgen

Häufig werden Ausdrücke dazu verwendet, um die Verbindungszeichenfolgeneigenschaft eines Steuerelements wie des SqlDataSource-Steuerelements festzulegen. Dabei wird auf die in der Datei Web.config gespeicherte Verbindungszeichenfolge´zurückgegriffen. Sie könnten beispielsweise für ein SqlDataSource-Steuerelement folgendes Verbindungszeichenfolgenattribut verwenden:

<asp:SqlDataSource ID="SqlDataSource1" Runat="server" 
    SelectCommand="SELECT * FROM [Employees]"
    ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString1 %>">
</asp:SqlDataSource>

Der hervorgehobene Code zeigt einen Ausdruck, der in Anführungszeichen steht und den Wert des Attributs angibt. Der Ausdruck verweist auf eine Verbindungszeichenfolge mit dem Namen "NorthwindConnectionString1", die im connectionStrings-Element der Datei Web.config definiert ist. Das connectionStrings-Element könnte folgendermaßen aussehen:

<configuration>
  <connectionStrings>
    <add name="NorthwindConnectionString1" 
      connectionString="Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind;"
      providerName="System.Data.SqlClient" />
  </connectionStrings>
    <!-- additional settings -->
</configuration>
Hinweis:

Zur Erhöhung der Sicherheit wird empfohlen, den Abschnitt der Konfigurationsdatei, der die Verbindungszeichenfolgen enthält, zu verschlüsseln. Ausführliche Informationen finden Sie unter Verschlüsseln von Konfigurationsinformationen mithilfe der geschützten Konfiguration. Im vorangehenden Beispiel ist der configuration-Abschnitt der Konfigurationsdatei aus Gründen der Anschaulichkeit unverschlüsselt dargestellt.

Jede Verbindungszeichenfolge wird mit einem Namen versehen, den Sie in einem Ausdruck verwenden können, um in den ASP.NET-Seiten darauf zu verweisen.

Anwendungseinstellungen

Sie können mit Ausdrücken nicht nur auf Verbindungszeichenfolgen verweisen, sondern auch auf Anwendungseinstellungen, die in einer der Website zugänglichen Konfigurationsdatei definiert sind. Gehen wir beispielsweise davon aus, dass Sie häufig verwendete Zeichenfolgen, z. B. den Copyrighthinweis für die Site, im appSettings-Abschnitt der Datei Web.config gespeichert haben. Dies könnte wie folgt aussehen:

<appSettings>
  <add key="copyright" value="(c)Copyright 2004 Northwind Traders"/>
</appSettings>

In den ASP.NET-Seiten könnten Sie dann z. B. mit folgendem Ausdruck auf den Wert verweisen:

<%$ AppSettings: copyright %>

Auf diese Weise können Sie häufig verwendete Elemente in der Konfigurationsdatei verwalten und müssen den Text nicht auf den einzelnen Seiten ändern.

Anzeigen von statischem Inhalt mithilfe von Ausdrücken

Wenn Sie auf einer Seite oder einem Steuerelement einen Ausdruck als statischen Wert verwenden möchten, verwenden Sie einen Ausdruck als Teil eines ASP.NET-Serversteuerelements. Fügen Sie dazu ein Literal-Steuerelement hinzu, und legen Sie dessen Text-Eigenschaft auf einen Ausdruck fest. Um beispielsweise einen Copyrighthinweis an den unteren Rand jeder Seite zu platzieren, gehen Sie folgendermaßen vor:

<p align="center">

<asp:Literal text="<%$ AppSettings: copyright %>"/>

</p>

Ressourcendateien

Neben Werten aus der Konfigurationsdatei können Sie auch Werte anzeigen, die in Ressourcendateien (.resx oder .resource) gespeichert sind. In Ressourcendateien werden i. d. R. Informationen gespeichert, die sich spezifisch auf eine bestimmte Sprache oder eine bestimmte Kombination aus Sprache und Kultur beziehen. Durch Verwendung von Ressourcendateien und Ausdrücken können Sie eine Webseite erstellen, die Text in verschiedenen Sprachen anzeigt. Die Anzeige hängt dabei von Werten ab, die während der Laufzeit bestimmt werden, z. B. die vom Browser übermittelten Sprach- und Kultureinstellungen oder eine explizite Sprachauswahl des Benutzers.

Zum Beispiel können Sie beim automatischen Lokalisieren von Inhalten die Text-Eigenschaft eines Serversteuerelements mithilfe der Ausdruckssyntax festlegen, wie in folgendem Beispiel gezeigt:

<asp:Label id="label1"  text="<%$ Resources: Messages, ThankYouLabel %>" />

Im Ordner App_GlobalResources können sich Ressourcendateien mit dem Namen Messages.resx, Messages.es.resx, Message.de.resx usw. befinden – also eigene Ressourcendateien für die Meldungen in den jeweils unterstützten Sprachen. Die Datei Messages.resx stellt die neutrale (Fallback-) Ressource dar, die verwendet wird, wenn keine explizite Kultur festgelegt wird. Die Datei Messages.resx könnte einen Eintrag wie den folgenden enthalten:

<data name="ThankYouLabel"><value>Thank you very much!</value></data>

In den anderen Ressourcendateien würden sich ähnliche Einträge befinden, wobei die Zeichenfolgen in die Sprache übersetzt wären, die von der jeweiligen Ressourcendatei dargestellt wird. Weitere Informationen über das Verwenden von Ausdrücken für Ressourcen und Lokalisierung finden Sie unter Übersicht über das Verwenden von Ressourcen für ASP.NET-Webseiten.

Siehe auch

Konzepte

Übersicht über die Syntax von ASP.NET-Webseiten

Weitere Ressourcen

Syntax der ASP.NET-Konfigurationsdateien