Dodawanie kontrolera (VB)

Autor: Rick Anderson

W tym samouczku przedstawiono podstawy tworzenia aplikacji internetowej ASP.NET MVC przy użyciu programu Microsoft Visual Web Developer 2010 Express Service Pack 1, który jest bezpłatną wersją programu Microsoft Visual Studio. Przed rozpoczęciem upewnij się, że zostały zainstalowane wymagania wstępne wymienione poniżej. Wszystkie z nich można zainstalować, klikając następujący link: Instalator platformy internetowej. Alternatywnie można indywidualnie zainstalować wymagania wstępne, korzystając z następujących linków:

Jeśli używasz programu Visual Studio 2010 zamiast Visual Web Developer 2010, zainstaluj wymagania wstępne, klikając następujący link: Wymagania wstępne programu Visual Studio 2010.

Projekt Visual Web Developer z kodem źródłowym VB.NET jest dostępny do dołączenia do tego tematu. Pobierz wersję VB.NET. Jeśli wolisz język C#, przejdź do wersji języka C# tego samouczka.

MVC to skrót od model-view-controller. MVC jest wzorcem tworzenia aplikacji, takich jak każda część ma osobną odpowiedzialność:

  • Model: dane aplikacji.
  • Widoki: pliki szablonów używane przez aplikację do dynamicznego generowania odpowiedzi HTML.
  • Kontrolery: klasy obsługujące przychodzące żądania adresów URL do aplikacji, pobierają dane modelu, a następnie określają szablony widoków renderujące odpowiedź na klienta.

Omówimy wszystkie te pojęcia w tym samouczku i pokażemy, jak używać ich do tworzenia aplikacji.

Utwórz nowy kontroler, klikając prawym przyciskiem myszy folder Kontrolery w Eksplorator rozwiązań, a następnie wybierając polecenie Dodaj kontroler.

AddController

Nadaj nowemu kontrolerowi nazwę "HelloWorldController" i kliknij przycisk Dodaj.

2AddEmptyController

Zwróć uwagę na Eksplorator rozwiązań po prawej stronie, że został utworzony nowy plik o nazwie HelloWorldController.cs i że plik jest otwarty w środowisku IDE.

Wewnątrz nowego public class HelloWorldController bloku utwórz dwie nowe metody, które wyglądają jak poniższy kod. Na przykład zwrócimy ciąg HTML bezpośrednio z kontrolera.

Namespace MvcMovie
    Public Class HelloWorldController
        Inherits System.Web.Mvc.Controller

        Public Function Index() As String
            Return "This is my default action..."
        End Function

        Public Function Welcome() As String
            Return "This is the Welcome action method..."
        End Function

    End Class
End Namespace

Kontroler ma nazwę , HelloWorldController a nowa metoda nosi nazwę Index. Uruchom aplikację (naciśnij klawisz F5 lub Ctrl+F5). Po uruchomieniu przeglądarki dołącz ciąg "HelloWorld" do ścieżki na pasku adresu. (Na moim komputerze jest to http://localhost:43246/HelloWorld) Przeglądarka będzie wyglądać podobnie do poniższego zrzutu ekranu. W powyższej metodzie kod zwrócił ciąg bezpośrednio. Powiedzieliśmy systemowi, aby po prostu zwrócić jakiś kod HTML i to nie!

Zrzut ekranu przedstawiający przeglądarkę z tekstem To jest moja domyślna akcja w oknie.

ASP.NET MVC wywołuje różne klasy kontrolerów (i różne metody akcji w nich) w zależności od przychodzącego adresu URL. Domyślna logika mapowania używana przez ASP.NET MVC używa formatu takiego jak w celu kontrolowania wywoływanego kodu:

/[Controller]/[ActionName]/[Parameters]

Pierwsza część adresu URL określa klasę kontrolera do wykonania. Więc /HelloWorld mapuje na klasę HelloWorldController . Druga część adresu URL określa metodę akcji w klasie do wykonania. W związku z tym /HelloWorld/Index spowoduje Index wykonanie metody HelloWorldController klasy. Zwróć uwagę, że musieliśmy odwiedzić /HelloWorld powyżej, a Index metoda została użyta domyślnie. Jest to spowodowane tym, że metoda o nazwie Index jest domyślną metodą, która zostanie wywołana na kontrolerze, jeśli nie zostanie jawnie określona.

Przejdź na stronę http://localhost:xxxx/HelloWorld/Welcome. Metoda Welcome jest uruchamiana i zwraca ciąg "To jest metoda akcji powitalnej...". Domyślne mapowanie MVC to /[Controller]/[ActionName]/[Parameters]. Dla tego adresu URL kontroler jest HelloWorld i Welcome jest metodą. Jeszcze nie użyliśmy [Parameters] części adresu URL.

Zrzut ekranu przedstawiający przeglądarkę z tekstem To jest metoda akcji Powitaj w oknie.

Zmodyfikujmy nieco przykład, aby przekazać informacje o parametrach z adresu URL do kontrolera (na przykład /HelloWorld/Welcome?name=Scott&numtimes=4). Zmień metodę tak Welcome , aby zawierała dwa parametry, jak pokazano poniżej. Należy pamiętać, że użyto funkcji opcjonalnego parametru VB, aby wskazać, że numTimes parametr powinien być domyślny do 1, jeśli dla tego parametru nie przekazano żadnej wartości.

Public Function Welcome(ByVal name As String, Optional ByVal numTimes As Integer = 1) As String
    Dim message As String = "Hello " & name & ", NumTimes is: " & numTimes
    Return "" & Server.HtmlEncode(message) & ""
End Function

Uruchom aplikację i przejdź do http://localhost:xxxx/HelloWorld/Welcome?name=Scott&numtimes=4adresu . Możesz wypróbować różne wartości dla name i numtimes. System automatycznie mapuje nazwane parametry z ciągu zapytania na pasku adresu na parametry w metodzie.

Zrzut ekranu przedstawiający przeglądarkę z tekstem Hello Scott Num Times to 4 w oknie.

W obu tych przykładach kontroler wykonuje część VC MVC — to jest widok i praca kontrolera. Kontroler zwraca kod HTML bezpośrednio. Zwykle nie chcemy, aby kontrolery zwracały kod HTML bezpośrednio, ponieważ staje się to bardzo uciążliwe dla kodu. Zamiast tego zazwyczaj użyjemy oddzielnego pliku szablonu widoku, aby pomóc wygenerować odpowiedź HTML. Przyjrzyjmy się, jak możemy to zrobić.