Sdílet prostřednictvím


Přidání kontroleru (VB)

Rick Anderson

V tomto kurzu se naučíte základy vytváření webové aplikace ASP.NET MVC pomocí sady Microsoft Visual Web Developer 2010 Express Service Pack 1, což je bezplatná verze sady Microsoft Visual Studio. Než začnete, ujistěte se, že jste nainstalovali níže uvedené požadavky. Všechny z nich můžete nainstalovat kliknutím na následující odkaz: Instalační program webové platformy. Případně můžete jednotlivé požadavky nainstalovat pomocí následujících odkazů:

Pokud používáte Sadu Visual Studio 2010 místo visual web developeru 2010, nainstalujte požadované součásti kliknutím na následující odkaz: Požadavky sady Visual Studio 2010.

K tomuto tématu je k dispozici projekt Visual Web Developer s VB.NET zdrojovým kódem. Stáhněte si VB.NET verzi. Pokud dáváte přednost jazyku C#, přepněte do verze jazyka C# tohoto kurzu.

MVC je zkratka pro model-view-controller. MVC je vzor pro vývoj aplikací tak, aby každá část nese samostatnou odpovědnost:

  • Model: Data pro vaši aplikaci
  • Zobrazení: Soubory šablony, které vaše aplikace použije k dynamickému generování odpovědí HTML.
  • Kontrolery: Třídy, které zpracovávají příchozí požadavky URL aplikace, načítají data modelu a pak určují šablony zobrazení, které vykreslují odpověď klientovi.

Všechny tyto koncepty probereme v tomto kurzu a ukážeme vám, jak je používat k sestavení aplikace.

Vytvořte nový kontroler tak, že v Průzkumník řešení kliknete pravým tlačítkem na složku Kontrolery a vyberete Přidat kontroler.

AddController

Pojmenujte nový kontroler "HelloWorldController" a klikněte na Přidat.

2AddEmptyController

V Průzkumník řešení napravo si všimněte, že pro vás byl vytvořen nový soubor s názvem HelloWorldController.cs a že je soubor otevřen v integrovaném vývojovém prostředí (IDE).

Uvnitř nového public class HelloWorldController bloku vytvořte dvě nové metody, které vypadají jako následující kód. Jako příklad vrátíme řetězec HTML přímo z kontroleru.

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

Váš kontroler je pojmenován HelloWorldController a vaše nová metoda je pojmenována Index. Spusťte aplikaci (stiskněte klávesu F5 nebo Ctrl+F5). Po spuštění prohlížeče připojte "HelloWorld" k cestě na panelu Adresa. (Na mém počítači je to http://localhost:43246/HelloWorld) Váš prohlížeč bude vypadat jako na následujícím snímku obrazovky. Ve výše uvedené metodě kód vrátil řetězec přímo. Řekli jsme systému, aby vrátil nějaký kód HTML, a to udělal!

Snímek obrazovky s prohlížečem s textem Toto je moje výchozí akce v okně

ASP.NET MVC vyvolá různé třídy kontroleru (a různé metody akcí) v závislosti na příchozí adrese URL. Výchozí logika mapování používaná ASP.NET MVC používá podobný formát k řízení, jaký kód se vyvolá:

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

První část adresy URL určuje třídu kontroleru, která se má provést. Takže /HelloWorld se mapuje na HelloWorldController třídu. Druhá část adresy URL určuje metodu akce třídy, která se má provést. Proto by metoda /HelloWorld/Index způsobila Index spuštění metody HelloWorldController třídy. Všimněte si, že jsme museli navštívit /HelloWorld výše a Index metoda byla použita ve výchozím nastavení. Důvodem je to, že pojmenovaná Index metoda je výchozí metoda, která bude volána na kontroleru, pokud není explicitně určena.

Přejděte na http://localhost:xxxx/HelloWorld/Welcome. Metoda Welcome se spustí a vrátí řetězec "Toto je metoda uvítací akce...". Výchozí mapování MVC je /[Controller]/[ActionName]/[Parameters]. Pro tuto adresu URL je HelloWorld kontroler a Welcome je to metoda. Část adresy URL jsme zatím nepoužili [Parameters] .

Snímek obrazovky s prohlížečem s textem Toto je metoda uvítací akce v okně

Pojďme příklad trochu upravit, abychom mohli předat některé informace o parametrech z adresy URL kontroleru (například /HelloWorld/Welcome?name=Scott&numtimes=4). Změňte metodu Welcome tak, aby zahrnovala dva parametry, jak je znázorněno níže. Všimněte si, že jsme použili volitelnou funkci parametru VB k označení, že numTimes parametr by měl být ve výchozím nastavení 1, pokud pro tento parametr není předána žádná hodnota.

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

Spusťte aplikaci a přejděte na http://localhost:xxxx/HelloWorld/Welcome?name=Scott&numtimes=4. Můžete vyzkoušet různé hodnoty pro name a numtimes. Systém automaticky mapuje pojmenované parametry z řetězce dotazu na adresní řádek na parametry ve vaší metodě.

Snímek obrazovky znázorňující prohlížeč s textem Hello Scott Num Times je v okně 4

V obou těchto příkladech kontroler prováděl část VC MVC – to je zobrazení a práce kontroleru. Kontroler vrací kód HTML přímo. Obvykle nechceme, aby řadiče vracely kód HTML přímo, protože to je pro kód velmi těžkopádné. Místo toho obvykle k vygenerování odpovědi HTML použijeme samostatný soubor šablony zobrazení. Pojďme se podívat, jak to můžeme udělat.