MVC では、ルーティングは、ブラウザーの要求をコントローラーのアクションにマッピングし、応答を返すプロセスです。各 MVC アプリケーションには、デフォルトのデフォルト ルーティングがあります。 ホームコントローラー 。新しく作成したコントローラーにカスタム ルーティングを設定できます。
の RouteConfig.cs ファイルは、アプリケーションのルーティングを設定するために使用されます。最初は次のコードが含まれています。
// RouteConfig.cs
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using System.Web.Routing; namespace MvcApplicationDemo { 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 } ); } } }
この設定ファイルにより、ホームコントローラーのインデックスアクションがデフォルトとして扱われます。初めてアプリケーションを実行すると、次の出力が生成されます。
アドレスバーを見ると、 ローカルホスト:52174 。 MVC ルーターがコントローラーをマッピングするため、コントローラーは存在せず、アクションが指定されます。 RouteConfig.cs。
アドレスバーにコントローラー名とアクション名を明示的に入力すると、同じアクションにリダイレクトされます。の ローカルホスト:52174/ホーム/インデックス 同じ出力がブラウザに生成されます。
次に、新しいコントローラーを作成し、ルート ファイルに設定しましょう。を右クリックして、 コントローラ フォルダーを選択し、追加を選択してからコントローラーを選択します。ウィンドウがポップアップ表示されます。スクリーンショットで行ったように、空のコントローラーを選択します。
このコントローラーにはソース コードが含まれているため、これを次のコードでオーバーライドします。
// StudentsController.cs
using System.Web.Mvc; namespace MvcApplicationDemo.Controllers { public class StudentsController : Controller { public ContentResult Index() { return Content('This is default student page'); } } }
このコントローラーをルート ファイルで設定するために、いくつかの変更を加えました。 RouteConfig.cs ファイル。コードを以下に示します。
// RouteConfig.cs
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using System.Web.Routing; namespace MvcApplicationDemo { public class RouteConfig { public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute('{resource}.axd/{*pathInfo}'); routes.MapRoute( name: 'Students', url: '{controller}/{action}/{id}', defaults: new { controller = 'Students', action = 'Index', id = UrlParameter.Optional } ); } } }
このアプリケーションは同じ出力を生成します ローカルホスト:52174 そして ローカルホスト:52174/学生/インデックス
MVC フレームワークの Route モジュールがブラウザの URL をプロジェクトの RouteConfig ファイルにマッピングするためです。
出力:
コマンドチャウン
これは、コントローラー名とアクション名を明示的に入力した場合でも、上記と同じです。