Tworzenie tras niestandardowych (VB)
autor: Microsoft
Dowiedz się, jak dodać trasy niestandardowe do aplikacji ASP.NET MVC. Z tego samouczka dowiesz się, jak zmodyfikować domyślną tabelę tras w pliku Global.asax.
Z tego samouczka dowiesz się, jak dodać trasę niestandardową do aplikacji MVC ASP.NET. Dowiesz się, jak zmodyfikować domyślną tabelę tras w pliku Global.asax przy użyciu trasy niestandardowej.
W ASP.NET aplikacjach MVC domyślna tabela tras będzie działać prawidłowo. Jednak możesz odkryć, że masz wyspecjalizowane potrzeby routingu. W takim przypadku możesz utworzyć trasę niestandardową.
Załóżmy na przykład, że tworzysz aplikację w blogu. Może być konieczne obsłużenie żądań przychodzących, które wyglądają następująco:
/Archive/12-25-2009
Gdy użytkownik wprowadzi to żądanie, chcesz zwrócić wpis w blogu odpowiadający dacie 12.25.2009. Aby obsłużyć ten typ żądania, należy utworzyć trasę niestandardową.
Plik Global.asax na liście 1 zawiera nową trasę niestandardową o nazwie Blog, która obsługuje żądania, które wyglądają jak /Archive/entry date.
Lista 1 — Global.asax (z trasą niestandardową)
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
Kolejność tras dodanych do tabeli tras jest ważna. Nasza nowa niestandardowa trasa bloga jest dodawana przed istniejącą trasą domyślną. W przypadku odwrócenia kolejności trasa domyślna zawsze będzie wywoływana zamiast trasy niestandardowej.
Niestandardowa trasa bloga jest zgodna z dowolnym żądaniem rozpoczynającym się od /Archive/. W związku z tym jest on zgodny ze wszystkimi następującymi adresami URL:
/Archive/12-25-2009
/Archive/10-6-2004
/Archive/apple
Trasa niestandardowa mapuje żądanie przychodzące na kontroler o nazwie Archiwum i wywołuje akcję Entry(). Po wywołaniu metody Entry() data wejścia jest przekazywana jako parametr o nazwie entryDate.
Możesz użyć trasy niestandardowej bloga z kontrolerem w liście 2.
Lista 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
Zwróć uwagę, że metoda Entry() w pozycji Listing 2 akceptuje parametr typu DateTime. Struktura MVC jest wystarczająco inteligentna, aby automatycznie przekonwertować datę wejścia z adresu URL na wartość DateTime. Jeśli nie można przekonwertować parametru daty wejścia z adresu URL na wartość DateTime, zostanie zgłoszony błąd (zobacz Rysunek 1).
Rysunek 1. Błąd podczas konwertowania parametru
Rysunek 01. Błąd podczas konwertowania parametru (kliknij, aby wyświetlić obraz pełnowymiarowy)
Podsumowanie
Celem tego samouczka było pokazanie, jak można utworzyć trasę niestandardową. Przedstawiono sposób dodawania trasy niestandardowej do tabeli tras w pliku Global.asax reprezentującym wpisy w blogu. Omówiliśmy sposób mapowania żądań wpisów w blogu na kontroler o nazwie ArchiveController i akcji kontrolera o nazwie Entry().
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla