Freigeben über


Erstellen einer Aktion (VB)

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.

Aufrufen einer NonAction-Methode

Abbildung 01: Aufrufen einer NonAction-Methode (Klicken Sie hier, um das Bild in voller Größe anzuzeigen)