Codedeklarationsblöcke
Codedeklarationsblöcke definieren Servercodeabschnitte, die in <script>-Blöcken in den ASP.NET-Anwendungsdateien eingebettet und durch das runat="server"-Attribut gekennzeichnet sind.
<script runat="server" language="codelanguage" Src="pathname">
Code goes here.
</script>
Attribute
language
Gibt die im Codedeklarationsblock verwendete Sprache an. Dieser Wert kann alle .NET Framework-kompatiblen Sprachen darstellen, z. B. Visual Basic (VB), C# oder JScript .NET. Wenn keine Sprache angegeben ist, wird der in der @ Page-Direktive oder @ Control-Direktive angegebene Standardwert verwendet. Wird in der Direktive keine Sprache angegeben, ist die Standardeinstellung VB, es sei denn, Sie haben die Standardeinstellung in der Datei Web.config der Anwendung geändert.Hinweis Für eine ASP.NET-Seite oder ein Benutzersteuerelement kann nur eine Sprache verwendet werden.Wenn Sie die Sprache (unnötigerweise) an mehreren Stellen angeben, z. B. im Starttag eines Codedeklarationsblocks und in der @ Page-Direktive oder der @ Control-Direktive, müssen die Angaben übereinstimmen.
runat
Wenn der Wert dieses Attributs auf runat="server" festgelegt ist, wird der im script-Block enthaltene Code auf dem Server und nicht auf dem Client ausgeführt. Dieses Attribut ist für serverseitige Codeblöcke erforderlich.src
Gibt den Pfad und den Dateinamen einer zu ladenden externen Skriptdatei an. Wenn dieses Attribut verwendet wird, wird anderer Code im Deklarationsblock ignoriert.
Hinweise
Codedeklarationsblöcke werden mithilfe von <script>-Tags definiert, die einen runat-Attributwert enthalten, der auf server festgelegt ist. Das <script>-Element kann auch mithilfe eines language-Attributs die Sprache des inneren Codes angeben. Wenn keine Sprache angegeben ist, verwendet ASP.NET standardmäßig die für die Basisseite oder das Benutzersteuerelement konfigurierte Sprache. Diese wird mit der @ Page-Direktive bzw. der @ Control-Direktive gesteuert. Diese Blöcke serverseitigen Codes können in einer Reihe von ASP.NET-Anwendungsdateien deklariert werden, z. B. Webseiten, Benutzersteuerelemente, Masterseiten und Global.asax-Dateien. Bei der Kompilierung einer ASP.NET-Anwendungsdatei wird der eingebettete Codeblock mit genau dem Objekt kompiliert, das dem gegebenen ASP.NET-Dateityp zugeordnet ist. Wenn beispielsweise eine Seite kompiliert wird, werden sämtliche Codedeklarationsblöcke zusammen mit der Page-Klasse in ein einzelnes Seitenobjekt auf dem Server kompiliert.
Sie können auch mit dem <script>-Element eine externe Skriptdatei angeben, indem Sie das src-Attribut verwenden. Wenn Sie das src-Attribut definieren, wird der gesamte Inhalt zwischen dem Starttag und dem Endtag des <script>-Elements ignoriert. Verwenden Sie in diesem Fall einen abschließenden Schrägstrich am Ende des öffnenden Tags. Beispiel: <script runat="server" src="myFile.cs" />.
Beispiel
Das folgende Codebeispiel veranschaulicht, wie Sie die Logik für die Ereignisbehandlung des EnterBtn_Click-Ereignisses definieren können.
Sicherheitshinweis |
---|
Dieses Beispiel enthält ein Textfeld, das eine Benutzereingabe akzeptiert. Diese stellt ein potenzielles Sicherheitsrisiko dar.Standardmäßig stellt die ASP.NET-Seite sicher, dass die Benutzereingabe keine Skript- oder HTML-Elemente enthält.Weitere Informationen finden Sie unter Übersicht über Skriptangriffe. |
<html>
<script language="C#" runat="server">
void EnterBtn_Click(Object Src, EventArgs E) {
Message.Text = "Hi " + Name.Text + ", welcome to ASP.NET!";
}
</script>
<body>
<form runat="server">
Enter your name: <asp:textbox id="Name" runat=server/>
<asp:button text="Enter" Onclick="EnterBtn_Click" runat="server"/>
<p>
<asp:label id="Message" runat=server/>
</form>
</body>
</html>
<html>
<script language="VB" runat="server">
Sub EnterBtn_Click(Src As Object, e As EventArgs)
Message.Text = "Hi " & Name.Text & ", welcome to ASP.NET!"
End Sub
</script>
<body>
<form runat="server">
Enter your name: <asp:textbox id="Name" runat=server/>
<asp:button text="Enter" Onclick="EnterBtn_Click"
runat="server"/>
<p>
<asp:label id="Message" runat=server/>
</form>
</body>
</html>