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

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

たとえば、ルーティングを使用しないアプリケーションでは、ユーザーにはURLがhttp://myapplication/Users.aspx?id = 1として表示されます。これは、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つと自動的に見なします。

Note−コントローラーの名前がProductsControllerの場合、ルーティングURLにProductsのみを記載します。MVCフレームワークは、コントローラーのサフィックスを自動的に理解します。

簡単なルートを作成する

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

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

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