(ASP.NETとVB.NET) RouteConfigでルートを設定

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

関連の記事

(ASP.NETとVB.NET) Web.configファイルの値を取得

△上に戻る