ASP.NET RouteConfigで設定する(VB.NET)

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()は実行されません。上から実行されます。

関連の記事

ASP.NET 設定ファイルの値を取得する(Web.config)

△上に戻る