Asp.net-mvc-controllers
ASP.NET MVC-コントローラー
コントローラーは、本質的にASP.NET MVCアプリケーションの中心的なユニットです。 これは、受信HTTP要求とやり取りする最初の受信者です。 そのため、コントローラーはどのモデルを選択するかを決定し、そのビューがレンダリングされた後、モデルからデータを取得し、それをそれぞれのビューに渡します。 実際、コントローラーは、入力を受け取り、適切な出力をレンダリングするアプリケーションの全体的なフローを制御しています。
コントローラーは、組み込みコントローラーの基本クラスであるSystem.Web.Mvc.Controllerを継承するC#クラスです。 コントローラーの各パブリックメソッドはアクションメソッドと呼ばれます。つまり、何らかのURLを介してWebから呼び出してアクションを実行できます。
MVCの規則では、プロジェクトのセットアップ時にVisual Studioが作成したControllersフォルダーにコントローラーを配置します。
新しいASP.Net MVCプロジェクトを作成して、コントローラーの簡単な例を見てみましょう。
- ステップ1 *-Visual Studioを開き、[ファイル]→[新規]→[プロジェクト]メニューオプションをクリックします。
新しいプロジェクトダイアログが開きます。
- ステップ2 *-左ペインから、テンプレート→Visual C#→Webを選択します。
- ステップ3 *-中央のペインで、ASP.NET Webアプリケーションを選択します。
- ステップ4 *-[名前]フィールドにプロジェクト名「MVCControllerDemo」を入力し、[OK]をクリックして続行します。 次のダイアログが表示され、ASP.NETプロジェクトの初期コンテンツを設定するよう求められます。
- ステップ5 *-簡単にするために、[空にする]オプションを選択し、[フォルダーとコア参照を追加する]セクションの[MVC]チェックボックスをオンにして[OK]をクリックします。
最小限の定義済みコンテンツで基本的なMVCプロジェクトを作成します。
Visual Studioでプロジェクトを作成すると、ソリューションエクスプローラーウィンドウに多数のファイルとフォルダーが表示されます。
空のプロジェクトテンプレートからASP.Net MVCプロジェクトを作成したため、現時点では、アプリケーションには実行するものが含まれていません。
- ステップ6 *-ソリューションエクスプローラーでControllersフォルダーを右クリックして、EmployeeControllerを追加します。 追加→コントローラを選択します。
[足場の追加]ダイアログが表示されます。
EmployeeController Scaffolding Dialog
- ステップ7 *-MVC 5 Controller – Emptyオプションを選択し、「追加」ボタンをクリックします。
[コントローラーの追加]ダイアログが表示されます。
- ステップ8 *-名前をEmployeeControllerに設定し、[追加]ボタンをクリックします。
Controllersフォルダーに新しいC#ファイルEmployeeController.csが表示されます。このフォルダーはVisual Studioでも編集用に開かれています。
Custom Route Employee Controller
ここで、このアプリケーションでは、デフォルトのルートを持つEmployeeコントローラーのカスタムルートを追加します。
- ステップ1 *-「App_Start」フォルダーの下の「RouteConfig.cs」ファイルに移動し、次のルートを追加します。
以下は、RouteConfig.csファイルの完全な実装です。
ユーザーが来て従業員を検索し、URL「従業員/マーク」を指定するシナリオを考えます。 この場合、MarkはActionメソッドとは異なるパラメーター名として扱われます。 そのため、この種のシナリオでは、デフォルトルートはあまり機能しません。
パラメーターが渡されるときにブラウザーから着信値を取得するために、MVCフレームワークはこの問題に対処する簡単な方法を提供します。 Actionメソッド内のパラメーターを使用することによります。
- ステップ2 *-次のコードを使用してEmployeeControllerクラスを変更します。
アクションメソッドにパラメーターを追加すると、MVCフレームワークはパラメーター名に一致する値を探します。 可能なすべての組み合わせを適用して、パラメーター値を見つけます。 ルートデータ、クエリ文字列などを検索します。
したがって、「/Employee/Mark」をリクエストすると、MVCフレームワークは「UserInput」のパラメーターが必要であると判断し、MarkがURLから選択され、自動的に渡されます。
Server.HtmlEncodeは、あらゆる種類の悪意のあるスクリプトをプレーンテキストに変換するだけです。 上記のコードをコンパイルして実行し、次のURL http://localhost:61465/Employee/Mark を要求すると、次の出力が得られます。
上記のスクリーンショットでわかるように、マークはURLから選択されています。