コントローラーの追加 (VB)

作成者 : Rick Anderson

このチュートリアルでは、Microsoft Visual Studio の無料バージョンである Microsoft Visual Web Developer 2010 Express Service Pack 1 を使用して、ASP.NET MVC Web アプリケーションを構築する基本について説明します。 開始する前に、以下に示す前提条件がインストールされていることを確認してください。 これらのすべてをインストールするには、 Web プラットフォーム インストーラーのリンクをクリックします。 または、次のリンクを使用して、前提条件を個別にインストールすることもできます。

Visual Web Developer 2010 ではなく Visual Studio 2010 を使用している場合は、Visual Studio 2010 の前提条件のリンクをクリックして前提条件をインストールします。

このトピックでは、ソース コード VB.NET 含む Visual Web Developer プロジェクトを使用できます。 VB.NET バージョンをダウンロードします。 C# を使用する場合は、このチュートリアルの C# バージョン に切り替えます。

MVC は model-view-controller を表します。 MVC は、アプリケーションを開発するためのパターンであり、各部分に個別の責任があります。

  • モデル: アプリケーションのデータ。
  • ビュー: アプリケーションが HTML 応答を動的に生成するために使用するテンプレート ファイル。
  • コントローラー: アプリケーションへの受信 URL 要求を処理し、モデル データを取得し、クライアントへの応答をレンダリングするビュー テンプレートを指定するクラス。

このチュートリアルでは、これらすべての概念について説明し、それらを使用してアプリケーションを構築する方法について説明します。

ソリューション エクスプローラーの Controllers フォルダーを右クリックし、[コントローラーの追加] を選択して、新しいコントローラーを作成します

AddController

新しいコントローラーに "HelloWorldController" という名前を 付け、[追加] をクリックします。

2AddEmptyController

右側のソリューション エクスプローラー、HelloWorldController.cs という名前の新しいファイルが作成され、そのファイルが IDE で開かれていることに注意してください。

新しい public class HelloWorldController ブロック内に、次のコードのような 2 つの新しいメソッドを作成します。 例として、コントローラーから HTML の文字列を直接返します。

Namespace MvcMovie
    Public Class HelloWorldController
        Inherits System.Web.Mvc.Controller

        Public Function Index() As String
            Return "This is my default action..."
        End Function

        Public Function Welcome() As String
            Return "This is the Welcome action method..."
        End Function

    End Class
End Namespace

コントローラーには という名前が付けられ HelloWorldController 、新しいメソッドの名前 Indexは です。 アプリケーションを実行します (F5 キーまたは Ctrl + F5 キーを押します)。 ブラウザーが起動したら、アドレス バーのパスに "HelloWorld" を追加します。 (私のコンピュータでは、 http://localhost:43246/HelloWorldです)ブラウザーは次のスクリーンショットのようになります。 上記のメソッドでは、コードは文字列を直接返しました。 私たちはシステムにいくつかのHTMLを返すように言いました、そしてそれはしました!

ブラウザーのテキストを示すスクリーンショット これは、ウィンドウ内の既定のアクションです。

ASP.NET MVC は、受信 URL に応じて異なるコントローラー クラス (およびその中の異なるアクション メソッド) を呼び出します。 ASP.NET MVC によって使用される既定のマッピング ロジックでは、次のような形式を使用して、呼び出されるコードを制御します。

/[Controller]/[ActionName]/[Parameters]

URL の最初の部分によって、実行するコントローラー クラスが決まります。 そのため 、/HelloWorld は クラスにマップされます HelloWorldController 。 URL の 2 番目の部分は、実行するクラスのアクション メソッドを決定します。 そのため、/HelloWorld/Index により、 クラスの メソッドがHelloWorldController実行されますIndex。 上記の /HelloWorld にのみアクセスする必要があり、メソッドが Index 既定で使用されていることに注意してください。 これは、 という名前 Index のメソッドがコントローラーで明示的に指定されていない場合に呼び出される既定のメソッドであるためです。

http://localhost:xxxx/HelloWorld/Welcome を参照します。 Welcome メソッドが実行され、"This is the Welcome action method..." という文字列を返します。 既定の MVC マッピングは です /[Controller]/[ActionName]/[Parameters]。 この URL の場合、コントローラーは HelloWorld であり Welcome 、 メソッドです。 URL の部分はまだ使用 [Parameters] していません。

テキストが表示されたブラウザーを示すスクリーンショット これは、ウィンドウ内の Welcome アクション メソッドです。

URL からコントローラーにパラメーター情報を渡すことができるように、例を少し変更しましょう (たとえば、 /HelloWorld/Welcome?name=Scott&numtimes=4)。 次に示すように、メソッドを Welcome 変更して 2 つのパラメーターを含めます。 VB の省略可能なパラメーター機能を使用して、そのパラメーターに値が numTimes 渡されない場合は、パラメーターの既定値が 1 であることを示しました。

Public Function Welcome(ByVal name As String, Optional ByVal numTimes As Integer = 1) As String
    Dim message As String = "Hello " & name & ", NumTimes is: " & numTimes
    Return "" & Server.HtmlEncode(message) & ""
End Function

アプリケーションを実行し、 を参照しますhttp://localhost:xxxx/HelloWorld/Welcome?name=Scott&numtimes=4numtimesに対してさまざまな値をname試すことができます。 名前付きパラメーターは、アドレス バーのクエリ文字列からメソッド内のパラメーターに自動的にマップされます。

ウィンドウに Hello Scott Num Times が 4 のテキストが表示されたブラウザーを示すスクリーンショット。

どちらの例でも、コントローラーは MVC の VC 部分 (ビューとコントローラーの動作) を実行しています。 コントローラーは HTML を直接返しています。 通常、HTML を直接返すコントローラーは必要ありません。これは、コード化が非常に面倒になるためです。 代わりに、通常、HTML 応答の生成に役立つ別のビュー テンプレート ファイルを使用します。 これを行う方法を見てみましょう。