Mvc-framework-routing-engine

提供:Dev Guides
移動先:案内検索

MVCフレームワーク-ルーティングエンジン

ASP.NET MVCルーティングを使用すると、ユーザーのアクションを説明し、ユーザーがより簡単に理解できるURLを使用できます。 同時に、ルーティングを使用して、最終ユーザーに表示することを意図していないデータを非表示にすることができます。

たとえば、ルーティングを使用しないアプリケーションでは、ユーザーにはhttp://myapplication/Users.aspx?id = 1としてURLが表示され、myapplicationパス内のファイルUsers.aspxに対応し、IDを1として送信します。 、一般的に、最終ユーザーにそのようなファイル名を表示したくない。

MVC URLを処理するために、ASP.NETプラットフォームはルーティングシステムを使用します。これにより、希望するURLのパターンを作成し、明確かつ簡潔な方法で表現できます。 MVCの各ルートには、特定のURLパターンが含まれています。 このURLパターンは着信リクエストURLと比較され、URLがこのパターンに一致する場合、ルーティングエンジンはリクエストをさらに処理するために使用します。

MVCルーティングURL形式

MVCルーティングを理解するには、次のURLを考慮してください-

http://servername/Products/Phones

上記のURLでは、Productsは最初のセグメントで、Phoneは次の形式で表現できる2番目のセグメントです-

{controller}/{action}

MVCフレームワークは、最初のセグメントを自動的にコントローラー名と見なし、2番目のセグメントをそのコントローラー内のアクションの1つと見なします。

-Controllerの名前がProductsControllerの場合、ルーティングURLで製品のみを言及します。 MVCフレームワークは、Controllerサフィックスを自動的に理解します。

シンプルなルートを作成する

ルートは、App_Startプロジェクトフォルダーの下にあるRouteConfig.csファイルで定義されます。

MVC Route Config

このファイル内に次のコードが表示されます-

public class RouteConfig {

   public static void RegisterRoutes(RouteCollection routes) {
      routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

      routes.MapRoute(
         name: "Default",
         url: "{controller}/{action}/{id}",
         defaults: new { controller = "Home", action = "Index",
            id = UrlParameter.Optional }
      );
   }
}

このRegisterRoutesメソッドは、アプリケーションの起動時にGlobal.ascxによって呼び出されます。 Global.ascxの下のApplication_Startメソッドは、このMapRoute関数を呼び出して、デフォルトのコントローラーとそのアクション(コントローラークラス内のメソッド)を設定します。

上記のデフォルトのマッピングを例に従って変更するには、次のコード行を変更します-

defaults: new { controller = "Products", action = "Phones", id = UrlParameter.Optional }

この設定はProductsControllerを選択し、その中のPhoneメソッドを呼び出します。 同様に、ProductsController内にElectronicsなどの別のメソッドがある場合、そのURLは次のようになります-

*http://servername/Products/Electronics*