ASP.NETのRouteConfigで設定するサンプルです。言語は、VB.NETです。
目次
サンプル | ルート構成の定義ファイル(RouteConfig) |
actionを変更した場合 | |
routes.MapRouteを追加した場合 |
ルート構成の定義ファイル(RouteConfig)
RouteConfig.vbは、ルート構成の定義ファイルです。
場所は、App_Startフォルダ配下にあります。
以下は、RouteConfig.vbのコードです。
Public Module RouteConfig
Public Sub RegisterRoutes(ByVal routes As RouteCollection)
routes.IgnoreRoute("{resource}.axd/{*pathInfo}")
routes.MapRoute(
name:="Default",
url:="{controller}/{action}/{id}",
defaults:=New With {.controller = "Home", .action = "Index", .id = UrlParameter.Optional}
)
End Sub
End Module
6行目のnameはDafaultです。
7行目のurlは、コントローラ/アクション/idとなっています。
8行目は、コントローラに"Home"でアクションに"Index"の指定があります。
例として、上記の設定でhttps://localhost:44390/でブラウザにアクセスすると
HomeController.vbのFunction Index() から実行されます。
以下は、HomeController.vbのコードです。4行目にIndex()があります。
Public Class HomeController
Inherits System.Web.Mvc.Controller
Function Index() As ActionResult
Return View()
End Function
Function About() As ActionResult
ViewData("Message") = "Your application description page."
Return View()
End Function
Function Contact() As ActionResult
ViewData("Message") = "Your contact page."
Return View()
End Function
End Class
actionを変更した場合
以下のように8行目のactionの値をAboutに変更した場合です。
Public Module RouteConfig
Public Sub RegisterRoutes(ByVal routes As RouteCollection)
routes.IgnoreRoute("{resource}.axd/{*pathInfo}")
routes.MapRoute(
name:="Default",
url:="{controller}/{action}/{id}",
defaults:=New With {.controller = "Home", .action = "About", .id = UrlParameter.Optional}
)
End Sub
End Module
https://localhost:44390/でブラウザにアクセスすると
HomeController.vbの8行目のFunction About() から実行されます。
Public Class HomeController
Inherits System.Web.Mvc.Controller
Function Index() As ActionResult
Return View()
End Function
Function About() As ActionResult
ViewData("Message") = "Your application description page."
Return View()
End Function
Function Contact() As ActionResult
ViewData("Message") = "Your contact page."
Return View()
End Function
End Class
routes.MapRouteを追加した場合
以下のように5~9行目にroutes.MapRouteを追加した場合です。
Public Module RouteConfig
Public Sub RegisterRoutes(ByVal routes As RouteCollection)
routes.IgnoreRoute("{resource}.axd/{*pathInfo}")
routes.MapRoute(
name:="Test",
url:="{controller}/{action}/{id}",
defaults:=New With {.controller = "Test1", .action = "Index", .id = UrlParameter.Optional}
)
routes.MapRoute(
name:="Default",
url:="{controller}/{action}/{id}",
defaults:=New With {.controller = "Home", .action = "About", .id = UrlParameter.Optional}
)
End Sub
End Module
6行目は、nameの値をTestにしています。
https://localhost:44390/でブラウザにアクセスすると
Test1Controller.vbのIndex() から実行されます。
HomeController.vbのAbout()は実行されません。上から実行されます。
関連の記事