Homepage-Webhilfe Event-Banner

Formulardaten

In diesem Thema wollen wir uns damit beschäftigen, wie Sie in ASP.NET Formulardaten abrufen können. Dabei beziehen wir uns bei diesen Beispielen lediglich auf die HTTP-Methode POST. Wie Sie GET-Parameter (oder auch als URL-Parameter bezeichnet) abrufen, haben wir ja bereits im vorherigen Thema kennengelernt. Das Abrufen von POST-Parametern funktioniert sehr ähnlich. Der einzige Unterschied ist, dass wir hier an Stelle des assoziativen Array QueryString das assoziative Array Form verwenden. Auch hier wird null als Wert zurückgegeben, wenn ein Parameter nicht mitgesendet wurde.


Im folgenden Beispiel haben wir ein einfaches HTML-Formular mit den Feldern anrede, vorname und nachname. Oberhalb des Formulars werden die Werte mit Hilfe der Server-Tags für Inline-Code ausgegeben.

Wert "anrede": <%= Request.Form["anrede"] != null ? Request.Form["anrede"] : "-" %><br />
Wert "vorname": <%= Request.Form["vorname"] != null ? Request.Form["vorname"] : "-" %><br />
Wert "nachname": <%= Request.Form["nachname"] != null ? Request.Form["nachname"] : "-" %><br />
<br />
<form action="Default.aspx" method="post">
	<table>
		<tr>
			<td style="width: 100px;">Anrede:</td>
			<td>
				<select name="anrede">
					<option value="H">Herr</option>
					<option value="F">Frau</option>
				</select>
			</td>
		</tr>
		<tr>
			<td style="width: 100px;">Vorname:</td>
			<td><input type="text" name="vorname" /></td>
		</tr>
		<tr>
			<td style="width: 100px;">Nachname:</td>
			<td><input type="text" name="nachname" /></td>
		</tr>
		<tr>
			<td></td>
			<td><input type="submit" value="Absenden" /></td>
		</tr>
	</table>
</form>
VorschauDownload

Einen „besseren“ Zugriff auf Formulardaten bzw. Formularelemente haben wir, wenn wir den Formularelementen eine ID geben und das Attribut runat mit dem Wert server setzen. Nachdem dies erledigt ist, können wir ganz normal mittels der .NET-Sprache auf das Steuerelement zugreifen, da das Steuerelement über den Namen, der mittels des ID-Attributs vergeben wurde, als Eigenschaft Teil der Klasse von der jeweiligen Seite ist. Um den Wert eines Formularfelds abzurufen, kann die Eigenschaft Value des Objekts verwendet werden. Elemente die ein id- und runat-Attribut haben und somit ein Zugriff vom Server möglich ist, werden auch als HTML-Server-Elemente bezeichnet. Das folgende Beispiel ist vom Formular-Aufbau gleich wie das obere Beispiel, enthält jedoch nicht HTML-Elemente sondern HTML-Server-Elemente:

Wert "anrede": <%= inputAnrede.Value %><br />
Wert "vorname": <%= inputVorname.Value %><br />
Wert "nachname": <%= inputNachname.Value %><br />
<br />
<form action="Default.aspx" method="post" runat="server">
	<table>
		<tr>
			<td style="width: 100px;">Anrede:</td>
			<td>
				<select name="anrede" id="inputAnrede" runat="server">
					<option value="H">Herr</option>
					<option value="F">Frau</option>
				</select>
			</td>
		</tr>
		<tr>
			<td style="width: 100px;">Vorname:</td>
			<td><input type="text" name="vorname" id="inputVorname" runat="server" /></td>
		</tr>
		<tr>
			<td style="width: 100px;">Nachname:</td>
			<td><input type="text" name="nachname" id="inputNachname" runat="server" /></td>
		</tr>
		<tr>
			<td></td>
			<td><input type="submit" value="Absenden" /></td>
		</tr>
	</table>
</form>
VorschauDownload

Wichtig: Das Attribut runat im form-Element darf nicht fehlen, andernfalls wird ein Fehler ausgelöst.

Übrigens: Wie Ihnen vielleicht aufgefallen ist, werden die Werte nach dem Klick auf „Absenden“ nicht verworfen, so wie es im ersten Beispiel der Fall ist oder wie wir es von PHP gewohnt sind. Das Speichern der Werte wird durch den sogenannten Ansichtszustand verwaltet. Ist dies für ein Element nicht erwünscht, so kann die Eigenschaft EnableViewState auf false gesetzt werden.

Um unsere Webseite für Sie optimal zu gestalten und fortlaufend verbessern zu können, verwenden wir Cookies. Durch die weitere Nutzung der Webseite stimmen Sie der Verwendung von Cookies zu. Weitere Informationen OK