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