Sdílet prostřednictvím


Vytvoření kontroleru (VB)

Stephen Walther

V tomto kurzu Stephen Walther ukazuje, jak můžete přidat kontroler do aplikace ASP.NET MVC.

Cílem tohoto kurzu je vysvětlit, jak můžete vytvořit nové kontrolery ASP.NET MVC. Naučíte se vytvářet kontrolery pomocí možnosti nabídky Přidat kontroler sady Visual Studio i ručním vytvořením souboru třídy.

Použití možnosti nabídky Přidat kontroler

Nejjednodušší způsob, jak vytvořit nový kontroler, je kliknout pravým tlačítkem na složku Kontrolery v okně Průzkumník řešení sady Visual Studio a vybrat možnost nabídky Přidat, kontroler (viz Obrázek 1). Výběrem této možnosti nabídky se otevře dialogové okno Přidat kontroler (viz Obrázek 2).

Snímek obrazovky s oknem Průzkumník řešení sady Visual Studio, které zobrazuje možnosti Přidat a Kontroler v nabídce zobrazené po kliknutí pravým tlačítkem myši

Obrázek 01: Přidání nového kontroleru (kliknutím zobrazíte obrázek v plné velikosti)

Snímek obrazovky s dialogovým oknem Přidat kontroler, které v poli Název kontroleru zobrazuje výchozí 1 kontroler

Obrázek 02: Dialogové okno Přidat kontroler (kliknutím zobrazíte obrázek v plné velikosti)

Všimněte si, že první část názvu kontroleru je zvýrazněná v dialogovém okně Přidat kontroler . Každý název kontroleru musí končit příponou Controller. Můžete například vytvořit kontroler s názvem ProductController , ale ne kontroler s názvem Product.

Pokud vytvoříte kontroler, kterému chybí přípona kontroleru , nebudete ho moct vyvolat. Nedělej tohle- poté, co jsem udělal tuto chybu, promarněl jsem nespočet hodin svého života.

Výpis 1 – Controllers\ProductController.vb

Public Class ProductController
    Inherits System.Web.Mvc.Controller

    '
    ' GET: /Product/

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

End Class

Kontrolery byste měli vždy vytvářet ve složce Kontrolery. V opačném případě budete porušovat konvence ASP.NET MVC a pro ostatní vývojáře bude obtížnější porozumět vaší aplikaci.

Metody akcí generování uživatelského rozhraní

Při vytváření kontroleru máte možnost automaticky vygenerovat metody akcí Vytvořit, Aktualizovat a Podrobnosti (viz Obrázek 3). Pokud vyberete tuto možnost, vygeneruje se třída kontroleru ve výpisu 2.

Automatické vytváření metod akcí

Obrázek 03: Automatické vytváření metod akcí (kliknutím zobrazíte obrázek v plné velikosti)

Výpis 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

Tyto vygenerované metody jsou metody se zástupnými procedurmi. Musíte přidat vlastní logiku pro vytvoření, aktualizaci a zobrazení podrobností pro zákazníka sami. Metody zástupných procedur vám ale poskytnou pěkný výchozí bod.

Vytvoření třídy kontroleru

Kontroler ASP.NET MVC je pouze třída. Pokud chcete, můžete praktické generování kontroleru sady Visual Studio ignorovat a vytvořit třídu kontroleru ručně. Postupujte takto:

  1. Klikněte pravým tlačítkem na složku Kontrolery, vyberte možnost nabídky Přidat, Nová položka a vyberte šablonu Třída (viz obrázek 4).
  2. Pojmenujte novou třídu PersonController.vb a klikněte na tlačítko Přidat .
  3. Upravte výsledný soubor třídy tak, aby třída dědila ze základní třídy System.Web.Mvc.Controller (viz výpis 3).

Vytvoření nové třídy

Obrázek 04: Vytvoření nové třídy (kliknutím zobrazíte obrázek v plné velikosti)

Výpis 3 – Controllers\PersonController.vb

Public Class PersonController
    inherits Controller

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

End Class

Kontroler ve výpisu 3 zveřejňuje jednu akci s názvem Index(), která vrátí řetězec "Hello World!". Tuto akci kontroleru můžete vyvolat spuštěním aplikace a vyžádáním adresy URL, jako je následující:

http://localhost:40071/Person

Poznámka

ASP.NET Development Server používá náhodné číslo portu (například 40071). Při zadávání adresy URL pro vyvolání kontroleru budete muset zadat správné číslo portu. Číslo portu můžete zjistit tak, že najedete myší na ikonu ASP.NET Development Server v oznamovací oblasti Windows (vpravo dole na obrazovce).