Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
von Microsoft
Erfahren Sie, wie Sie einem ASP.NET MVC-Controller eine neue Aktion hinzufügen. Erfahren Sie mehr über die Anforderungen für eine Methode als Aktion.
In diesem Tutorial wird erläutert, wie Sie eine neue Controlleraktion erstellen können. Sie erfahren mehr über die Anforderungen einer Aktionsmethode. Außerdem erfahren Sie, wie Sie verhindern, dass eine Methode als Aktion verfügbar gemacht wird.
Hinzufügen einer Aktion zu einem Controller
Sie fügen einem Controller eine neue Aktion hinzu, indem Sie dem Controller eine neue Methode hinzufügen. Der Controller in Listing 1 enthält beispielsweise eine Aktion namens Index() und eine Aktion mit dem Namen SayHello(). Beide Methoden werden als Aktionen verfügbar gemacht.
Auflistung 1: Controllers\HomeController.vb
<HandleError()> _
Public Class HomeController
Inherits System.Web.Mvc.Controller
Function Index() As ActionResult
Return View()
End Function
Function SayHello() As String
Return "Hello!"
End Function
End Class
Um dem Universum als Aktion ausgesetzt zu werden, muss eine Methode bestimmte Anforderungen erfüllen:
- Die Methode muss öffentlich sein.
- Die -Methode kann keine statische Methode sein.
- Die -Methode kann keine Erweiterungsmethode sein.
- Die -Methode kann kein Konstruktor, Getter oder Setter sein.
- Die -Methode darf keine offenen generischen Typen aufweisen.
- Die -Methode ist keine Methode der Controller-Basisklasse.
- Die -Methode kann keine ref- oder out-Parameter enthalten.
Beachten Sie, dass es keine Einschränkungen für den Rückgabetyp einer Controlleraktion gibt. Eine Controlleraktion kann eine Zeichenfolge, eine DateTime, eine instance der Random-Klasse oder void zurückgeben. Das ASP.NET MVC-Framework konvertiert jeden Rückgabetyp, der kein Aktionsergebnis ist, in eine Zeichenfolge und rendert die Zeichenfolge im Browser.
Wenn Sie einem Controller eine Methode hinzufügen, die nicht gegen diese Anforderungen verstößt, wird die Methode als Controlleraktion verfügbar gemacht. Seien Sie hier vorsichtig. Eine Controlleraktion kann von jeder Person aufgerufen werden, die mit dem Internet verbunden ist. Erstellen Sie beispielsweise keine DeleteMyWebsite()-Controlleraktion.
Verhindern des Aufrufs einer öffentlichen Methode
Wenn Sie eine öffentliche Methode in einer Controllerklasse erstellen müssen und die Methode nicht als Controlleraktion verfügbar machen möchten, können Sie das Aufrufen der Methode mithilfe des <NonAction-Attributs> verhindern. Der Controller in Listing 2 enthält beispielsweise eine öffentliche Methode namens CompanySecrets(), die mit dem <NonAction-Attribut> versehen ist.
Auflistung 2: Controllers\WorkController.vb
Public Class WorkController
Inherits System.Web.Mvc.Controller
_
Function CompanySecrets() As String
Return "This information is secret."
End Function
End Class
Wenn Sie versuchen, die CompanySecrets()-Controlleraktion aufzurufen, indem Sie /Work/CompanySecrets in die Adressleiste Ihres Browsers eingeben, wird die Fehlermeldung in Abbildung 1 angezeigt.
Abbildung 01: Aufrufen einer NonAction-Methode (Klicken Sie hier, um das Bild in voller Größe anzuzeigen)