Freigeben über


Erstellen eines Controllers (VB)

von Stephen Walther

In diesem Tutorial veranschaulicht Stephen Walther, wie Sie einer ASP.NET MVC-Anwendung einen Controller hinzufügen können.

In diesem Tutorial wird erläutert, wie Sie neue ASP.NET MVC-Controller erstellen können. Sie erfahren, wie Sie Controller erstellen, indem Sie die Visual Studio-Menüoption Controller hinzufügen und eine Klassendatei manuell erstellen.

Verwenden der Menüoption "Controller hinzufügen"

Am einfachsten können Sie einen neuen Controller erstellen, indem Sie im Fenster Visual Studio Projektmappen-Explorer mit der rechten Maustaste auf den Ordner Controller klicken und die Menüoption Hinzufügen, Controller auswählen (siehe Abbildung 1). Wenn Sie diese Menüoption auswählen, wird das Dialogfeld Controller hinzufügen geöffnet (siehe Abbildung 2).

Screenshot des Fensters

Abbildung 01: Hinzufügen eines neuen Controllers(Klicken Sie hier, um das bild in voller Größe anzuzeigen)

Screenshot des Dialogfelds Controller hinzufügen, in dem standard 1 Controller im Feld Controllername angezeigt wird.

Abbildung 02: Dialogfeld "Controller hinzufügen" (Klicken Sie hier, um das bild in voller Größe anzuzeigen)

Beachten Sie, dass der erste Teil des Controllernamens im Dialogfeld Controller hinzufügen hervorgehoben ist. Jeder Controllername muss mit dem Suffix Controller enden. Sie können beispielsweise einen Controller mit dem Namen ProductController , aber keinen Controller mit dem Namen Product erstellen.

Wenn Sie einen Controller erstellen, dem das Suffix Controller fehlt, können Sie den Controller nicht aufrufen. Tun Sie dies nicht - ich habe unzählige Stunden meines Lebens vergeudet, nachdem ich diesen Fehler gemacht hatte.

Eintrag 1: Controller\ProductController.vb

Public Class ProductController
    Inherits System.Web.Mvc.Controller

    '
    ' GET: /Product/

    Function Index() As ActionResult
        Return View()
    End Function

End Class

Sie sollten immer Controller im Ordner Controller erstellen. Andernfalls verstoßen Sie gegen die Konventionen von ASP.NET MVC, und andere Entwickler haben es schwieriger, Ihre Anwendung zu verstehen.

Gerüstbauaktionsmethoden

Wenn Sie einen Controller erstellen, haben Sie die Möglichkeit, die Aktionsmethoden Create, Update und Details automatisch zu generieren (siehe Abbildung 3). Wenn Sie diese Option auswählen, wird die Controllerklasse in Listing 2 generiert.

Automatisches Erstellen von Aktionsmethoden

Abbildung 03: Automatisches Erstellen von Aktionsmethoden (Klicken Sie hier, um das bild in voller Größe anzuzeigen)

Eintrag 2: Controller\CustomerController.vb

Public Class CustomerController
    Inherits System.Web.Mvc.Controller

    '
    ' GET: /Customer/

    Function Index() As ActionResult
        Return View()
    End Function

    '
    ' GET: /Customer/Details/5

    Function Details(ByVal id As Integer) As ActionResult
        Return View()
    End Function

    '
    ' GET: /Customer/Create

    Function Create() As ActionResult
        Return View()
    End Function

    '
    ' POST: /Customer/Create

    <AcceptVerbs(HttpVerbs.Post)> _
    Function Create(ByVal collection As FormCollection) As ActionResult
        Try
            ' TODO: Add insert logic here
            Return RedirectToAction("Index")
        Catch
            Return View()
        End Try
    End Function

    '
    ' GET: /Customer/Edit/5

    Function Edit(ByVal id As Integer) As ActionResult
        Return View()
    End Function

    '
    ' POST: /Customer/Edit/5

    <AcceptVerbs(HttpVerbs.Post)> _
    Function Edit(ByVal id As Integer, ByVal collection As FormCollection) As ActionResult
        Try
            ' TODO: Add update logic here

            Return RedirectToAction("Index")
        Catch
            Return View()
        End Try
    End Function
End Class

Bei diesen generierten Methoden handelt es sich um Stubmethoden. Sie müssen die eigentliche Logik zum Erstellen, Aktualisieren und Anzeigen von Details für einen Kunden selbst hinzufügen. Aber die Stubmethoden bieten Ihnen einen schönen Ausgangspunkt.

Erstellen einer Controllerklasse

Der ASP.NET MVC-Controller ist nur eine Klasse. Wenn Sie möchten, können Sie das praktische Visual Studio-Controllergerüst ignorieren und eine Controllerklasse von Hand erstellen. Führen Sie die folgenden Schritte aus:

  1. Klicken Sie mit der rechten Maustaste auf den Ordner Controller, wählen Sie die Menüoption Hinzufügen, Neues Element aus, und wählen Sie die Klassenvorlage aus (siehe Abbildung 4).
  2. Nennen Sie die neue Klasse PersonController.vb, und klicken Sie auf die Schaltfläche Hinzufügen .
  3. Ändern Sie die resultierende Klassendatei, sodass die Klasse von der System.Web.Mvc.Controller-Basisklasse erbt (siehe Listing 3).

Erstellen einer neuen Klasse

Abbildung 04: Erstellen einer neuen Klasse(Klicken Sie hier, um ein Bild in voller Größe anzuzeigen)

Eintrag 3: Controller\PersonController.vb

Public Class PersonController
    inherits Controller

    Function Index AS String
        Return "Hello World!"
    End Function

End Class

Der Controller in Listing 3 macht eine Aktion namens Index() verfügbar, die die Zeichenfolge "Hallo Welt!" zurückgibt. Sie können diese Controlleraktion aufrufen, indem Sie Ihre Anwendung ausführen und eine URL wie folgt anfordern:

http://localhost:40071/Person

Hinweis

Der ASP.NET Development Server verwendet eine zufällige Portnummer (z. B. 40071). Wenn Sie eine URL zum Aufrufen eines Controllers eingeben, müssen Sie die richtige Portnummer angeben. Sie können die Portnummer ermitteln, indem Sie mit der Maus auf das Symbol für den ASP.NET Development Server im Windows-Benachrichtigungsbereich (unten rechts auf dem Bildschirm) zeigen.