Dashboard
と呼ばれるコントローラーがあり、3つのアクション:Summary
、Details
、およびStatus
があり、いずれもIDやその他のパラメーターを受け取りません。 URL /Dashboard
をSummary
コントローラーのDashboard
アクションにルーティングしたいのですが、/Dashboard/Summary
と同じように追加できますが、正しい追加方法がわかりませんルート。 Global.asax.cs
には、次のものがあります。
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new {controller = "Home", action = "Index", id = UrlParameter.Optional} // Parameter defaults
);
routes.MapRoute(
"/Dashboard",
"Dashboard",
new { controller = "Dashboard", action = "Summary" }
);
第二部では、私も試しました:
routes.MapRoute(
"/Dashboard",
"{controller}",
new { controller = "Dashboard", action = "Summary" }
);
そして
routes.MapRoute(
"/Dashboard",
"{controller}",
new { action = "Summary" }
);
/Dashboard
にアクセスしようとすると、常に404が表示されます。 MapRoute
へのパラメーターの形式について何か不足していると確信していますが、それが何かわかりません...
ダッシュボードルートをデフォルトルートの前に移動します。
routes.MapRoute(
"Dashboard",
"Dashboard/{action}",
new { controller = "Dashboard", action = "Summary" }
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new {controller = "Home", action = "Index", id = UrlParameter.Optional} // Parameter defaults
);
ルートの順序はすべてを変更します。また、Dashboard
ルートに加えた変更にも注目してください。最初のパラメータはルートの名前です。 2つ目はURLで、Dashboard
で始まるURLと一致し、Dashboard
コントローラーで他のアクションを許可します。ご覧のとおり、デフォルトでSummary
アクションになります。
「デフォルト」のキャッチオールルートを最後に宣言する必要があります。
これにより、コントローラーasp.netのデフォルトアクションが設定されます。
routes.MapRoute("Dashboard", "{controller}/{action}",
defaults: new { controller = "Dashboard", action = "Summary" });