動作(アクション)と演算結果(行動結果)はASP.NET MVCのアプリケーション構築の基本的な部分です。
ASP.NET MVC、及び操作のセットを定義するために使用される重合コントローラで。コントローラの操作方法は、着信要求を処理しています。コントローラは、論理的な方法を提供し、同様の動作は、いくつかの一般的な規則(例えば、ルーティング、キャッシング、承認)が共通のアプリケーションを使用できるように、組織化されるであろう。着信要求 のルーティング 操作にマップを。
コントローラは、「コントローラ」クラスと端部または端部から継承された任意の「コントローラ」であってもよく、ASP.NETコアMVCは、インスタンス化することができます。コントローラが依存することが示さ原理に従い、その動作は、コンストラクタ依存性注入を使用して依存関係を必要と取得すべきです。
慣例により、コントローラクラス:
ルートディレクトリのフォルダにある「コントローラ」ファイル。
Microsoft.AspNetCore.Mvc.Conrrollerから継承されます。
これら二つの規則は必要ありません。
MVCパターンでは、コントローラは初期化し、インスタンス化モデルを要求する責任があります。一般的に言って、ビジネスロジックは、モデルの実行中に配置する必要があります。
モデルは、一般的なCLRオブジェクト、データベースではなく、DbContextまたは関連するタイプでなければなりません。
モデルコントローラは、処理結果(もしあれば)を取得し、適切なビューおよびビューに関連するデータを返します。
コントローラは、UIレベルの抽象化です。その役割は、着信要求のデータが有効であることを確認し、どのビュー(またはAPIの結果)を返す必要がありますを選択することです。一般的には、コントローラでこれらのタスクを処理するために直接データアクセスやビジネスロジックが、サービス手数料が含まれていません。
1.定義操作(アクション)
コントローラ上の任意の一般的な方法は、動作しています。バインディング要求と検証を使用した運用モデルパラメータ。
動作パラメータの方法は、ModelState.IsValid属性をtrueに受け入れを確認する必要があります。
この方法は、論理演算は、着信要求の懸念にサービスを提供するためにマップする必要があり備えます。ビジネス上の問題は通常、依存性を介してアクセス可能なコントローラ注入サービスとして表現されます。その後、マッピングの動作は、アプリケーションの動作状態になります。
操作は、任意のコンテンツを返すことができるが、例としては、典型的にIActionResultリターンに応答して生成されます。操作は、応答オプションの種類、操作の結果は責任を応答する責任があります。
2.コントローラ支援方法
必須ではありませんが、一般的にコントローラの基本クラスから自分のコントローラを継承します。その結果、コントローラは、便利なプロパティとメソッドの多くにアクセスすることができます。
3.ビュービュー
以下のようなインクの香りレンダリングHTMLビューを返し、ビュー(モデル)を返します。
4.HTTPステータスコード
など、HTTPステータスコードを返し、BadRequestを()renturn。
5.フォーマット応答
特定の方法でJSON形式または類似のオブジェクトを返します。このように、リターンJSON(モデル)。
6.コンテンツネゴシエーション応答
操作ではなくオブジェクトに戻るよりも、(OK、作成された、CreateAtRouteまたはCreateAtActionで)応答のコンテンツネゴシエーションを返すことがあります。
7.リダイレクト
動作は(リダイレクト、LocalRedirect、RedirectToAction又はRedirectToRouteを使用して)別のターゲットまたはリダイレクションに戻ります。
上記方法に加えて、簡単な操作は、オブジェクトを返すことができます。この場合、オブジェクトは、クライアントの要求に応じてフォーマットされます。
ほとんどのアプリケーションでは、多くの操作のワークフローセクションが共有されています。たとえば、ほとんどのアプリケーションは、ユーザーのみを認証したり、キャッシュ機能を利用すること。それは操作の方法の前または後に特定の論理演算を実行することが所望される場合、フィルタを使用することができます。これらは、操作が煩雑になり避けるために、フィルターを横断的関心事を通って処理することができます。
認可および認証の場合には、任意のコントローラまたはその操作を必要とする用途の特性を「承認」してもよいです。
MVCアプリケーションでは、多くの横断的関心事は、に対処するためのフィルタを使用することができます。またミドルウェア。