Tworzenie kontrolera (VB)

Autor: Stephen Walther

W tym samouczku Stephen Walther pokazuje, jak dodać kontroler do aplikacji ASP.NET MVC.

Celem tego samouczka jest wyjaśnienie sposobu tworzenia nowych kontrolerów MVC ASP.NET. Dowiesz się, jak tworzyć kontrolery zarówno za pomocą opcji menu Dodawanie kontrolera programu Visual Studio, jak i ręcznie tworząc plik klasy.

Korzystanie z opcji menu Dodaj kontroler

Najprostszym sposobem utworzenia nowego kontrolera jest kliknięcie prawym przyciskiem myszy folderu Kontrolery w oknie programu Visual Studio Eksplorator rozwiązań i wybranie opcji menu Dodaj, kontroler (zobacz Rysunek 1). Wybranie tej opcji menu powoduje otwarcie okna dialogowego Dodawanie kontrolera (zobacz Rysunek 2).

Zrzut ekranu przedstawiający okno Eksplorator rozwiązań programu Visual Studio, w którym są wyświetlane opcje Dodaj i Kontroler w menu prawym przyciskiem myszy.

Rysunek 01. Dodawanie nowego kontrolera (kliknij, aby wyświetlić obraz pełnowymiarowy)

Zrzut ekranu przedstawiający okno dialogowe Dodawanie kontrolera, w którym jest wyświetlany domyślny kontroler 1 w polu Nazwa kontrolera.

Rysunek 02. Okno dialogowe Dodawanie kontrolera (kliknij, aby wyświetlić obraz pełnowymiarowy)

Zwróć uwagę, że pierwsza część nazwy kontrolera została wyróżniona w oknie dialogowym Dodawanie kontrolera . Każda nazwa kontrolera musi kończyć się sufiksem Kontroler. Na przykład można utworzyć kontroler o nazwie ProductController , ale nie kontroler o nazwie Product.

Jeśli utworzysz kontroler, który nie ma sufiksu Kontrolera , nie będzie można wywołać kontrolera. Nie rób tego - zmarnowałem niezliczone godziny mojego życia po popełnieniu tego błędu.

Lista 1 — Controllers\ProductController.vb

Public Class ProductController
    Inherits System.Web.Mvc.Controller

    '
    ' GET: /Product/

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

End Class

Zawsze należy tworzyć kontrolery w folderze Kontrolery. W przeciwnym razie będziesz naruszać konwencje ASP.NET MVC i inni deweloperzy będą mieli trudniejszą wiedzę na temat aplikacji.

Metody akcji tworzenia szkieletu

Podczas tworzenia kontrolera możesz automatycznie wygenerować metody akcji Tworzenie, Aktualizowanie i Szczegóły (zobacz Rysunek 3). Jeśli wybierzesz tę opcję, zostanie wygenerowana klasa kontrolera na liście 2.

Automatyczne tworzenie metod akcji

Rysunek 03. Automatyczne tworzenie metod akcji (kliknij, aby wyświetlić obraz pełnowymiarowy)

Lista 2 — Controllers\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

Te wygenerowane metody są metodami wycinków. Należy dodać rzeczywistą logikę tworzenia, aktualizowania i wyświetlania szczegółów dla klienta samodzielnie. Ale metody wycinków zapewniają miły punkt wyjścia.

Tworzenie klasy kontrolera

Kontroler ASP.NET MVC jest tylko klasą. Jeśli wolisz, możesz zignorować wygodne szkielety kontrolera programu Visual Studio i utworzyć klasę kontrolera ręcznie. Wykonaj następujące kroki:

  1. Kliknij prawym przyciskiem myszy folder Kontrolery i wybierz opcję menu Dodaj, Nowy element i wybierz szablon Klasa (zobacz Rysunek 4).
  2. Nadaj nowej klasie nazwę PersonController.vb i kliknij przycisk Dodaj .
  3. Zmodyfikuj wynikowy plik klasy tak, aby klasa dziedziczyła z podstawowej klasy System.Web.Mvc.Controller (zobacz List 3).

Tworzenie nowej klasy

Rysunek 04. Tworzenie nowej klasy(Kliknij, aby wyświetlić obraz pełnowymiarowy)

Lista 3 — Controllers\PersonController.vb

Public Class PersonController
    inherits Controller

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

End Class

Kontroler w liście 3 uwidacznia jedną akcję o nazwie Index(), która zwraca ciąg "Hello world!". Tę akcję kontrolera można wywołać, uruchamiając aplikację i żądając adresu URL w następujący sposób:

http://localhost:40071/Person

Uwaga

Serwer ASP.NET Development Server używa losowego numeru portu (na przykład 40071). Podczas wprowadzania adresu URL w celu wywołania kontrolera należy podać odpowiedni numer portu. Numer portu można określić, umieszczając kursor myszy nad ikoną serwera deweloperów ASP.NET w obszarze powiadomień systemu Windows (w prawym dolnym rogu ekranu).