ASP.NETとVB.NETのRouteConfigでルート構成の設定を行うサンプルです。
目次
サンプル | ルート構成の定義ファイル(RouteConfig.vb) |
RouteConfigの定義を変更する | |
RouteConfigに定義を新規追加する |
ルート構成の定義ファイル(RouteConfig.vb)
App_Startフォルダ配下にある、ルート構成の定義ファイルのRouteConfig.vbを修正して
ルート構成を変更します。
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
RouteConfigの定義を変更する
RouteConfig.vb
RouteConfig.vbの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() から実行されます。
HomeController.vb
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
RouteConfigに定義を新規追加する
RouteConfig.vb
RouteConfig.vbの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()は実行されません。上から実行されます。
関連の記事