【发布时间】:2020-09-11 04:02:10
【问题描述】:
- 我有一个默认的普通客户和相关控制器的正常未命名区域:Conrollers。 Controllers forlder 中的控制器上没有任何与区域相关的属性。
- 我还有“管理”区域,其中包含区域\管理\控制器文件夹中的用户管理相关控制器。
- 我在管理区域的控制器具有属性:[Area("Manage")](我认为属于:“不能混合基于常规和属性的路由。在这些情况下,后者获胜”,但不知道如何解决这个问题)。
- 这是 Startup.cs 的摘录:
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "areas",
pattern: "{area:exists}/{controller=Home}/{action=Index}/{id?}");
endpoints.MapControllerRoute(
name: "categoryFilter",
pattern: "product/{action}/{category?}",
defaults: new { controller = "Product", action = "List" });
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
endpoints.MapRazorPages();
});
- 我需要更改哪些内容才能解决我的问题
我可以正常浏览该站点,直到找到与带有“管理”标签并放置在“管理”区域中的控制器相关的视图。一旦我点击这些视图,所有其他标准视图都会收到“/Manage/”路径,我无法返回它们:
最初的主页是:https://localhost:12345/,联系人是 https://localhost:12345/Contact
但后来它变成:https://localhost:44311/Manage 和 https://localhost:12345/Manage/Contact
【问题讨论】:
标签: asp.net-mvc asp.net-core routes asp.net-mvc-routing