Einführung in ASP.NET-Webseiten

Aktualisiert: November 2007

Mit ASP.NET-Webseiten können Sie dynamischen Inhalt für Ihre Website erstellen. Bei einer statischen HTML-Seite (HTM- oder HTML-Datei) erfüllt der Server eine Webanforderung, indem er die Datei liest und unverändert an den Browser sendet. Wenn dagegen eine ASP.NET-Webseite (ASPX-Datei) angefordert wird, wird die Seite auf dem Webserver als Programm ausgeführt. Während die Seite ausgeführt wird, kann sie sämtliche Aufgaben ausführen, die Ihre Website erfordert. Dazu zählen u. a. das Berechnen von Werten, das Lesen und Schreiben von Datenbankinformationen und das Aufrufen von anderen Programmen. Als Ausgabe erstellt die Seite auf dynamische Weise Markup (Elemente in HTML oder einer anderen Markupsprache) und sendet diese dynamische Ausgabe an den Browser.

Dieses Thema bietet eine Übersicht zu den grundlegenden Merkmalen der Funktionsweise von ASP.NET-Webseiten in Webanwendungen.

Postbacks und Roundtrips

ASP.NET-Seiten werden als Code auf dem Server ausgeführt. Damit die Seite verarbeitet wird, ist sie daher so konfiguriert, dass sie zum Server übermittelt wird, wenn Benutzer auf Schaltflächen klicken (oder, optional, wenn Benutzer Kontrollkästchen aktivieren bzw. mit anderen Steuerelementen auf der Seite interagieren). Die Seite wird jedes Mal an sich selbst zurückübermittelt, damit sie ihren Servercode erneut ausführen und sich dem Benutzer anschließend in einer neuen Version rendern kann.

Der Verarbeitungszyklus für eine ASP.NET-Webseite sieht wie folgt aus:

  1. Der Benutzer fordert die Seite an. (Die Seite wird mit einer HTTP-GET-Methode angefordert.) Die Seite wird zum ersten Mal ausgeführt und führt eine Vorverarbeitung aus, falls sie entsprechend programmiert wurde.

  2. Die Seite rendert Markup dynamisch im Browser. Für den Benutzer erscheint die Webseite wie eine gewöhnliche Seite.

  3. Der Benutzer gibt Informationen ein oder nimmt eine Auswahl vor und klickt dann auf eine Schaltfläche. (Wenn Benutzer auf einen Link statt auf eine Schaltfläche klicken, wird möglicherweise nur eine andere Seite geöffnet, ohne dass eine weitere Verarbeitung auf der ersten Seite stattfindet.)

  4. Die Seite wird an den Webserver gesendet. (Der Browser führt eine HTTP-POST-Methode aus. Dies wird in ASP.NET als Postback bezeichnet.) Beim Postback wird die Seite an sich selbst zurückgesendet. Wenn der Benutzer z. B. mit der Seite Default.aspx arbeitet, wird die Seite durch das Klicken auf eine Schaltfläche zurück zum Server mit dem Ziel Default.aspx gesendet.

  5. Auf dem Webserver wird die Seite erneut ausgeführt. Die Informationen, die der Benutzer eingab oder auswählte, stehen der Seite nun zur Verfügung.

  6. Die Seite führt die Verarbeitung aus, für die sie programmiert wurde.

  7. Die Seite stellt sich wieder im Browser dar.

Dieser Zyklus setzt sich fort, solange der Benutzer in der Seite arbeitet. Jedes Mal, wenn der Benutzer auf eine Schaltfläche klickt, werden die Daten in der Seite an den Webserver gesendet, und die Seite wird erneut ausgeführt. Ein solcher Zyklus wird als Roundtrip bezeichnet. Da die Seitenverarbeitung auf dem Webserver geschieht, erfordert jede Aktion der Seite einen Roundtrip zum Server.

Hinweis:

ASP.NET-Webseiten können Clientskript ausführen. Dazu ist kein Roundtrip zum Server erforderlich, und Clientskript kann zur Validierung von Benutzereingaben und zur Programmierung von bestimmten Benutzeroberflächentypen verwendet werden. Weitere Informationen hierzu finden Sie unter Clientskript in ASP.NET-Webseiten.

Seitenübergreifendes Senden von Daten

Unter bestimmten Umständen benötigen Sie möglicherweise eine Seite, die Daten an eine andere Seite sendet anstatt an sich selbst. Dies wird als seitenübergreifendes Senden von Daten bezeichnet. Zum Beispiel könnten Sie eine Reihe von Seiten erstellen, die eine Kundenbestellung verarbeiten. Jede Seite kann an die nächste Seite entsprechend der Reihenfolge senden. Weitere Informationen hierzu finden Sie unter Seitenübergreifendes Senden in ASP.NET-Webseiten.

Seitenlebensdauer

Während Formulare in Desktopanwendungen gestartet, ausgeführt und anschließend wieder entladen werden, nachdem der Benutzer die Bearbeitung beendet und auf die Schaltfläche zum Schließen geklickt hat, weisen ASP.NET-Webseiten im Gegensatz dazu ein anderes Verhalten auf. Dies liegt daran, dass im Internet Verbindungen immer nur vorübergehend bestehen. Wenn ein Browser eine Seite von einem Webserver anfordert, sind Browser und Server nur so lange miteinander verbunden, wie für die Verarbeitung der Anforderung benötigt wird. Nachdem der Webserver eine Seite zum Browser übertragen hat, wird die Verbindung beendet. Stellt der Browser dann eine weitere Anforderung an denselben Webserver, wird dies als neue Anforderung behandelt – auch wenn wieder dieselbe Seite angefordert wird.

Dieser vorübergehende Charakter der Internetverbindungen bestimmt, wie eine ASP.NET-Seite ausgeführt wird. Wenn ein Benutzer eine ASP.NET-Webseite anfordert, wird eine neue Instanz der Seite erstellt. Die Seite wird verarbeitet, rendert im Browser Markup und wird dann verworfen. Wenn der Benutzer durch das Klicken auf eine Schaltfläche ein Postback durchführt, wird eine neue Instanz der Seite erstellt, verarbeitet und wieder verworfen. So führt jedes Postback und jeder Roundtrip zu einer neuen Instanz der Seite.

Weitere Informationen finden Sie unter Erstellen von ASP.NET-Webseiten.

Beibehalten des Seitenzustands

Beim normalen HTTP-Protokoll verfügt der Server nur über die Informationen zu einer Seite, die der Benutzer mithilfe von Steuerelementen auf der Seite festgelegt hat, da der Browser nur diese Informationen beim Senden der Seite an den Server übermittelt. Andere Informationen wie Variablenwerte und Eigenschafteneinstellungen werden verworfen. Mithilfe von ASP.NET werden weitere Seiteninformationen folgendermaßen beibehalten:

  • ASP.NET speichert Steuerelementeinstellungen (Eigenschaften) zwischen Roundtrips. Dies wird als das Speichern des Steuerelementzustands bezeichnet.

  • ASP.NET enthält Zustandsverwaltungsfähigkeiten, mit denen Sie die eigenen Variablen sowie anwendungs- oder sitzungsspezifische Informationen zwischen Roundtrips speichern können.

  • ASP.NET kann erkennen, wenn eine Seite erstmals angefordert oder gesendet wird. Somit können Sie die entsprechende Programmierung vornehmen. Beispielsweise ist es sinnvoll, Informationen aus einer Datenbank beim ersten Anzeigen der Seite zu lesen, nicht aber bei jedem Postback.

    Hinweis:

    Der Server kann so konfiguriert werden, dass Seiteninformationen zwischengespeichert werden, um die Seiten zu optimieren. Allerdings ist es für die Anwendungsprogrammierung am besten, sich vorzustellen, dass Seiten nach der Verarbeitung durch den Server sofort gelöscht werden.

Weitere Informationen hierzu finden Sie unter Übersicht über die ASP.NET-Zustandsverwaltung.

Programmieren von ASP.NET-Webseiten

Sie können Servercode für ASP.NET-Webseiten mithilfe verschiedener Programmiersprachen in .NET Framework erstellen, z. B. Visual Basic, C# und J#. ASP.NET-Webseiten können Clientskript enthalten, das innerhalb des Browsers ausgeführt wird. Einige ASP.NET-Funktionen generieren Clientskript und fügen es in die Seite ein. In diesem Fall wird von ASP.NET immer ECMAScript (JavaScript) generiert, um die Browserkompatibilität zu erhöhen. Außerdem können Sie eigenes Clientskript für benutzerdefinierte Funktionen hinzufügen. Dazu können Sie jede Clientskriptsprache verwenden, die mit den Browsern kompatibel ist, für die Sie programmieren.

Serversteuerelemente

Wie andere Webseiten können auch ASP.NET-Webseiten statischen Text enthalten. Am häufigsten werden der Seite jedoch Steuerelemente hinzugefügt, z. B. Textfelder, Kontrollkästchen und Schaltflächen. Über diese Steuerelemente ist es dem Benutzer möglich, mit der Seite zu interagieren und beim Postback Informationen an den Server zu senden.

ASP.NET bietet eine Auflistung von Steuerelementen, die als Webserversteuerelemente bezeichnet werden. ASP.NET-Serversteuerelemente können den entsprechenden HTML-Formularelementen ähneln. Zum Beispiel ist das TextBox-Steuerelement in ASP.NET dem <input type="text">-Tag in HTML ähnlich. ASP.NET-Serversteuerelemente bieten jedoch umfangreichere Programmierungsmöglichkeiten als HTML-Elemente. Außerdem ist die Palette der angebotenen Funktionen von ASP.NET-Serversteuerelementen größer als bei HTML-Elementen. Zu den Serversteuerelementen, die Sie auf ASP.NET-Webseiten verwenden können, gehören ein Monatskalender-Steuerelement, datengebundene Steuerelemente zur Anzeige von Listen oder Datenblättern, ein Anmeldungssteuerelement für mehr Sicherheit in Ihrer Site und viele andere mehr.

Weitere Informationen hierzu finden Sie unter Übersicht über ASP.NET-Webserversteuerelemente.

Seitenereignisse und Serversteuerelementereignisse

ASP.NET-Webseiten und die darin enthaltenen Steuerelemente unterstützen ein Ereignismodell wie das in Windows Forms. Wenn Benutzer z. B. auf einer ASP.NET-Webseite auf ein Button-Serversteuerelement klicken, wird die Seite zurück an den Server gesendet und neu erstellt, und es wird ein Klickereignis ausgelöst. Sie können der Seite Code hinzufügen, der auf dieses Klickereignis reagiert.

Die Seite an sich löst bei ihrer Initialisierung Lebenszyklusereignisse aus, z. B. das Page_Init-Ereignis und das Page_Load-Ereignis. Dadurch erhalten Sie die Möglichkeit, beim Start der Seite Code auszuführen. (Beachten Sie, dass die Seite bei jedem Roundtrip erstellt und neu initialisiert wird.) Bestimmte Steuerelemente können eigene Ereignisse auslösen. Schaltflächensteuerelemente lösen ein Click-Ereignis aus, Kontrollkästchensteuerelemente und Optionsfeldsteuerelemente lösen ein CheckedChanged-Ereignis aus, und Listenfeldsteuerelemente und Dropdownlisten-Steuerelemente lösen ein SelectedIndexChanged-Ereignis aus. Einige Steuerelemente, z. B. das Calendar-Steuerelement, lösen Ereignisse aus, die abstrakter als einfache Klickereignisse sind. Das Calendar-Steuerelement löst z. B. ein VisibleMonthChanged-Ereignis aus, wenn Benutzer zu einem anderen Monat blättern.

Die meisten ASP.NET-Serversteuerelemente unterstützen nur wenige Ereignisse, die Sie in Servercode behandeln können. Für die Verarbeitung eines Ereignisses muss die Seite einen Roundtrip durchlaufen, damit die Auswahl des Benutzers zur Verarbeitung an die Seite gesendet werden kann. Serversteuerelemente machen keine häufig auftretenden Ereignisse wie onmouseover verfügbar, da bei jedem Auslösen eines solchen Ereignisses ein weiterer Roundtrip zum Server stattfinden würde. Das wiederum würde die Reaktionszeit auf der Seite erheblich beeinträchtigen. Sie können ASP.NET-Serversteuerelemente jedoch so konfigurieren, dass sie clientseitige Ereignisse wie onmouseover auslösen. In diesem Fall senden die Steuerelemente keine Daten an den Server zurück, und Sie erstellen Clientskript, um auf die Ereignisse zu reagieren.

Weitere Informationen über das Erstellen und Verwenden von Ereignissen und Ereignishandlern finden Sie unter Serverereignisbehandlung auf ASP.NET-Webseiten.

Browserkompatibilität

Da ASP.NET-Webseiten auf dem Webserver verarbeitet werden, sind sie mit allen Browsern und mobilen Geräten kompatibel. Eine Webseite rendert automatisch das richtige browserkompatible Markup (XHTML oder eine andere Markupsprache) für Features wie Formate und Layout. Sie haben aber auch die Möglichkeit, Webseiten mit Steuerelementen zu erstellen, die speziell für die Ausgabe auf bestimmten Geräten (z. B. Handys) bestimmt sind. Weitere Informationen finden Sie unter Erstellen von ASP.NET Mobile-Webseiten.

Siehe auch

Konzepte

Übersicht über ASP.NET-Webserversteuerelemente