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行目で出力された文字列は、画面にそのまま表示されます。
関連の記事