ルーティングについては、まだ理解できていないようです。
コントローラーが3つある
- 管理者コントローラ
- ダッシュボードコントローラー
- プロジェクトグループコントローラ
ダッシュボードの場合、URL を にします/Dashboard/
。ただし、管理セクションには、2 つの異なるコントローラーが必要です。/Admin/Overview
を使用する必要がありAdminController
、使用/Admin/ProjectGroups/
する必要がありますProjectGroupsController
。
これは私のルーティングがどのように見えるかです
routes.MapRoute(
name: "AdminOverivew",
url: "Admin/Overview",
defaults: new { controller = "Admin", action = "Overview" },
namespaces: new[] { "Com.Controllers" }
);
routes.MapRoute(
name: "AdminSubs",
url: "Admin/{controller}/{action}/{id}",
defaults: new { action = "Index", id = UrlParameter.Optional },
namespaces: new[] { "Com.Controllers" }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Login", action = "Index", id = UrlParameter.Optional },
namespaces: new[] {"Com.Controllers"}
);
*注、2 番目のルートの理由は、管理セクションの下にさらに多くのコントローラーがあるためです。
動作しています..ただし、HTML.ActionLink が生成する URL が間違っています。あるべきときに@Html.ActionLink("Dashboard", "Index", "Dashboard"........)
生成されます。/Admin/Dashboard
/Dashboard
ただし、@Html.ActionLink("Project Groups", "Index", "ProjecGroups".....)
正しい URL を生成します/Admin/ProjectGroups
2 番目の routes.MapRoute (AdminSubs) を取り出すと、状況は逆になります。ダッシュボードは適切な URL を取得し、/Dashboard
プロジェクト グループ/ProjectGroups
は残す必要がある場合になります/Admin/ProjectGroups
何を与える?