(ASP.NETとVB.NET) RedirectToActionのサンプル

ASP.NETとVB.NETのRedirectToActionのサンプルです。

目次

サンプル 指定のメソッドにリダイレクトする(RedirectToAction)
  コントローラ(Test1Controller.vb)
  ビュー(Index.vbhtml)

指定のメソッドにリダイレクトする(RedirectToAction)

Index.vbhtmlのボタンを押すとTest1Controller.vbへ送信し

その中にあるAction1メソッドからAction2メソッドへリダイレクトして

再度Index.vbhtmlを表示します。

https://localhost:44320/Test1/Index

 

コントローラ(Test1Controller.vb)

変数をセットし、別のアクションにリダイレクトするサンプルです。

Namespace Controllers
	Public Class Test1Controller
		Inherits Controller

		<HttpGet>
		Function Index() As ActionResult
			Return View()
		End Function

		<HttpPost>
		Function Action1() As ActionResult
			Dim TestData As String = "Test Data1"
			TempData("p1") = TestData
			Return RedirectToAction("Action2", "Test1")
		End Function

		<HttpGet>
		Function Action2() As String
			Return TempData("p1")
		End Function
	End Class
End Namespace

5~8行目は、初期表示で使用しています。
11行目からは、画面でボタンを押されたときに実行されます。
12行目は、文字列を変数にセットしています。
13行目は、TempDataに変数をセットしています。

Public Property TempData As TempDataDictionary

TempDataは、ControllerBaseクラスのプロパティでディクショナリです。キーと値を保持できます。P1がキーにあたります。

14行目は、RedirectToActionで、Test1コントローラークラスのAction2アクション(メソッド)に移動します。
19行目は、TempDataの値を画面に返します。

Protected Friend Function RedirectToAction(アクション名(メソッド), コントローラ名) As RedirectToRouteResult

RedirectToActionは、指定のアクション(メソッド)にリダイレクトします。Controllerクラスのメソッドです。
1つめの引数は、アクション名です。
2つめの引数は、コントローラ名です。

 

ビュー(Index.vbhtml)

@Code
		Layout = Nothing
End Code
<!DOCTYPE html>
<html>
<head>
</head>
<body>
	@Using Html.BeginForm("Action1", "Test1", FormMethod.Post, New With {.id = "form1"})
		@<input type="submit" id="button1" value="ボタン" />
	End Using
</body>
</html>

10行目のボタンを押すと上記のコントローラの11行目から実行されます。
コントローラ(Test1Controller.vb)の19行目で出力された文字列は、画面にそのまま表示されます。

関連の記事

(ASP.NETとVB.NET) JsonResultでJSONを返す

△上に戻る