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
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().