ASP.NET+VB.NET フォームの値を別画面に渡すサンプル

ASP.NET+VB.NETでフォームの値をsubmitで別画面に渡すサンプルです。

確認環境
・Microsoft Visual Studio Community 2019

目次

環境

説明用として以下3つのファイルがあります。
1.Index.vbhtml・・・値を送信する側のファイル。画面でテキストを入力しsubmitを行って値を送信します。
2.test1Controller.vb・・・コントローラです。アクセスするURLに従ってファイルを返します。
3.TestForm.vbhtml・・・値を受け取る側のファイル。Index.vbhtmlから値を受け取って画面に表示します。

画面表示までの流れ

画面表示までの流れは、以下のとおりです。
1.test1Controllerクラスにアクセス→Index.vbhtmlをブラウザに返す。
2.Index.vbhtmlのformのsubmitでtest1Controllerクラスにアクセス→TestForm.vbhtmlをブラウザに返す。

最初の表示は、https://localhost:44399/test1/Indexにアクセスします。

値を送信する側のファイル(Index.vbhtml)

値を送信する側のファイルです。

@Code
    Layout = Nothing
End Code
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
</head>
<body>
    <form method="post" action="TestForm">
        <input type="text" name="text1">
        <input type="submit" value="送信ボタン">
    </form>
</body>
</html>

12行目は、methodでpost方式を指定し、actionで送信先(testform)を指定しています。
13行目は、テキストボックスです。画面から文字を入力します。
14行目は、送信ボタンです。ボタンを押すとsubmitします。

画面イメージ

上記コードの画面イメージです。

コントローラのクラス(test1Controller.vb)

コントローラのクラスです。

Imports System.Web.Mvc

Namespace Controllers
    Public Class test1Controller
        Inherits Controller

        ' GET: test1
        Function Index() As ActionResult
            Return View()
        End Function
        Function TestForm() As ActionResult
            ViewBag.test1 = Request.Form("text1")
            Return View()
        End Function
    End Class
End Namespace

8行目は、test1フォルダ配下のIndex.vbhtmlを画面に表示します。
11行目は、test1フォルダ配下のTestForm.vbhtmlを画面に表示します。

12行目のRequest.Form("text1")は、リクエストパラメータを受け取ります。
"text1"はIndex.vbhtmlのフォームの中にあるnameの値です。
取得した値は、ViewBagにセットしています。
https://docs.microsoft.com/ja-jp/aspnet/mvc/overview/older-versions/getting-started-with-aspnet-mvc3/vb/adding-a-view

値を受け取る側のファイル(TestForm.vbhtml)

値を受け取る側のファイルです。

@Code
    Layout = Nothing
End Code
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width" />
    <title>TestForm</title>
</head>
<body>
    <p>@ViewBag.test1</p>
</body>
</html>

12行目は、@ViewBagで、コントローラから渡された値を表示します。

関連の記事

ASP.NET MVCのWebアプリでhello worldを表示する

△上に戻る