Gewusst wie: Konvertieren von Web Forms-Seiten in ASP.NET-Benutzersteuerelemente

Aktualisiert: November 2007

Wenn Sie eine ASP.NET-Webseite entwickelt haben und in der gesamten Anwendung auf deren Funktionen zugreifen möchten, können Sie einige kleinere Änderungen an der Seite vornehmen, um sie in ein Benutzersteuerelement umzuwandeln.

Konvertieren einer Einzeldatei-ASP.NET-Webseite in ein Benutzersteuerelement

  1. Ändern Sie die Dateinamenerweiterung des Steuerelements in .ascx.

  2. Löschen Sie die Elemente html, body und form auf der Seite.

  3. Ändern Sie die @ Page-Direktive in eine @ Control-Direktive.

  4. Entfernen Sie alle Attribute der @ Control-Direktive, außer Language, AutoEventWireup (falls vorhanden), CodeFile und Inherits.

  5. Fügen Sie der @ Control-Direktive ein className-Attribut hinzu. Dadurch kann das Benutzersteuerelement mit strikter Typbindung versehen werden, wenn es einer Seite hinzugefügt wird.

Konvertieren einer Code-Behind-ASP.NET-Webseite in ein Benutzersteuerelement

  1. Ändern Sie die Dateinamenerweiterung der ASPX-Datei in .ascx.

  2. Ändern Sie die Dateinamenerweiterung der Code-Behind-Datei in .ascx.vb oder .ascx.cs – je nachdem, in welcher Programmiersprache die Code-Behind-Datei geschrieben wurde.

  3. Öffnen Sie die Code-Behind-Datei, und ändern Sie die Klasse, von der sie erbt, von Page in UserControl.

  4. Nehmen Sie in der ASPX-Datei folgende Änderungen vor:

    1. Löschen Sie die Elemente html, body und form auf der Seite.

    2. Ändern Sie die @ Page-Direktive in eine @ Control-Direktive.

    3. Entfernen Sie alle Attribute der @ Control-Direktive, außer Language, AutoEventWireup (falls vorhanden), CodeFile und Inherits.

    4. Ändern Sie in der @ Control-Direktive das CodeFile-Attribut, sodass es auf die umbenannte Code-Behind-Datei verweist.

  5. Fügen Sie der @ Control-Direktive ein className-Attribut hinzu. Dadurch kann das Benutzersteuerelement mit strikter Typbindung versehen werden, wenn es einer Seite hinzugefügt wird.

Beispiel

Das folgende Beispiel zeigt eine Einzeldatei-ASP.NET-Webseite in ihrer ursprünglichen Form sowie das resultierende Benutzersteuerelement nach der Konvertierung der Seite.

Sicherheitshinweis:

In diesem Beispiel ist ein Textfeld für eine Benutzereingabe enthalten. Dies 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.

<%@ Page Language="VB" %>
<html>
<script runat=server>
Sub EnterBtn_Click(sender as Object, e as EventArgs)
    Label1.Text = "Hi " & Name.Text & " welcome to ASP.NET!"
End Sub
</script>
<body>
<h3> <u>Web Forms Page</u> </h3>
<form>
    Enter Name: <asp:textbox id="Name" runat=server/>
    <asp:button Text="Enter" OnClick="EnterBtn_Click"
        runat=server/>
<br>
<br>
<asp:label id="Label1" runat=server/>
</form>
</body>
</html>
<%@ Page Language="C#" %>
<html>
<script runat=server>
void EnterBtn_Click(Object sender, EventArgs e)
{
    Label1.Text = "Hi " + Name.Text + " welcome to ASP.NET!";
}
</script>
<body>
<h3> <u>Web Forms Page</u> </h3>
<form>
Enter Name: <asp:textbox id="Name" runat=server/>
<asp:button Text="Enter" OnClick="EnterBtn_Click"
    runat=server/>
<br>
<br>
<asp:label id="Label1" runat=server/>
</form>
</body>
</html>
<%@ Control Language="VB" ClassName="SampleUserControl" %>
<h3> <u>User Control</u> </h3>
<script runat=server>
Sub EnterBtn_Click(sender as Object, e as EventArgs)
    Label1.Text = "Hi " & Name.Text & " welcome to ASP.NET!"
End Sub
</script>
Enter Name: <asp:textbox id="Name" runat=server/>
<asp:button Text="Enter" OnClick="EnterBtn_Click"
    runat=server/>
<br>
<br>
<asp:label id="Label1" runat=server/>
<%@ Control Language="C#" ClassName="SampleUserControl" %>
<h3> <u>User Control</u> </h3>
<script runat=server>
void EnterBtn_Click(Object Sender, EventArgs e)
{
    Label1.Text = "Hi " + Name.Text + " welcome to ASP.NET!";
}
</script>
Enter Name: <asp:textbox id="Name" runat=server/>
<asp:button Text="Enter" OnClick="EnterBtn_Click"
runat=server/>
<br>
<br>
<asp:label id="Label1" runat=server/>

Siehe auch

Aufgaben

Gewusst wie: Erstellen von ASP.NET-Benutzersteuerelementen

Konzepte

Übersicht über ASP.NET-Benutzersteuerelemente