Sdílet prostřednictvím


Vytváření vlastních tras (VB)

od Microsoftu

Zjistěte, jak přidat vlastní trasy do aplikace ASP.NET MVC. V tomto kurzu se dozvíte, jak upravit výchozí směrovací tabulku v souboru Global.asax.

V tomto kurzu se dozvíte, jak přidat vlastní trasu do aplikace ASP.NET MVC. Zjistíte, jak upravit výchozí směrovací tabulku v souboru Global.asax vlastní trasou.

Ve ASP.NET aplikacích MVC bude výchozí směrovací tabulka fungovat správně. Můžete ale zjistit, že máte speciální potřeby směrování. V takovém případě můžete vytvořit vlastní trasu.

Představte si například, že vytváříte aplikaci blogu. Možná budete chtít zpracovávat příchozí požadavky, které vypadají takto:

/Archiv/25.12.2009

Když uživatel zadá tento požadavek, chcete vrátit položku blogu, která odpovídá datu 25. 12. 2009. Pokud chcete tento typ požadavku zpracovat, musíte vytvořit vlastní trasu.

Soubor Global.asax ve výpisu 1 obsahuje novou vlastní trasu s názvem Blog, která zpracovává požadavky, které vypadají takto: /Archive/entry date.

Výpis 1 – Global.asax (s vlastní trasou)

Public Class MvcApplication
    Inherits System.Web.HttpApplication
    Shared Sub RegisterRoutes(ByVal routes As RouteCollection)
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}")
        ' MapRoute takes the following parameters, in order:
        ' (1) Route name
        ' (2) URL with parameters
        ' (3) Parameter defaults
        routes.MapRoute( _
            "Blog", _
            "Archive/{entryDate}", _
            New With {.controller = "Archive", .action = "Entry"} _
        )
        routes.MapRoute( _
            "Default", _
            "{controller}/{action}/{id}", _
            New With {.controller = "Home", .action = "Index", .id = ""} _
        )
    End Sub
    Sub Application_Start()
        RegisterRoutes(RouteTable.Routes)
    End Sub
End Class

Pořadí tras, které přidáte do směrovací tabulky, je důležité. Naše nová vlastní trasa blogu se přidá před existující výchozí trasu. Pokud jste pořadí obrátili, bude se místo vlastní trasy vždy volat výchozí trasa.

Vlastní trasa blogu odpovídá všem požadavkem, který začíná na /Archive/. Proto odpovídá všem následujícím adresám URL:

  • /Archiv/25.12.2009

  • /Archiv/10-6-2004

  • /Archive/apple

Vlastní trasa namapuje příchozí požadavek na kontroler s názvem Archiv a vyvolá akci Entry(). Při zavolání metody Entry() se datum zadání předá jako parametr s názvem entryDate.

Můžete použít vlastní trasu Blog s kontrolerem ve výpisu 2.

Výpis 2 – ArchiveController.vb

Public Class ArchiveController
    Inherits System.Web.Mvc.Controller
    Function Entry(ByVal entryDate As DateTime)
        Return "You requested the entry from " & entryDate.ToString()
    End Function
End Class

Všimněte si, že metoda Entry() ve výpisu 2 přijímá parametr typu DateTime. Architektura MVC je dostatečně inteligentní, aby automaticky převela datum zadání z adresy URL na hodnotu DateTime. Pokud parametr vstupního data z adresy URL nelze převést na dateTime, vyvolá se chyba (viz obrázek 1).

Obrázek 1 – Chyba při převodu parametru

Dialogové okno New Project (Nový projekt)

Obrázek 01: Chyba při převodu parametru (kliknutím zobrazíte obrázek v plné velikosti)

Souhrn

Cílem tohoto kurzu bylo předvést, jak můžete vytvořit vlastní trasu. Zjistili jste, jak přidat vlastní trasu do směrovací tabulky v souboru Global.asax, která představuje položky blogu. Probrali jsme, jak mapovat požadavky na položky blogu na kontroler s názvem ArchiveController a akci kontroleru s názvem Entry().