.NET Core 6.0 区域路由正常但根控制器路由失效问题排查
区域与根控制器路由冲突的解决方法
你需要同时配置两条路由规则,分别处理区域请求和根目录请求,且区域路由要优先定义:
// 匹配带区域的请求 app.MapControllerRoute( name: "area", pattern: "{area:exists}/{controller=Home}/{action=Index}/{id?}"); // 匹配根目录下的请求 app.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}");
关键检查项:
- 区域内的控制器必须添加
[Area("区域名称")]特性,示例:[Area("Admin")] public class HomeController : Controller { // 控制器逻辑 } - 根目录下的控制器不能添加
[Area]特性,确保它归属于默认路由范围。 - 对比你那3个正常项目,检查新建项目的区域文件夹结构是否符合规范(如
Areas/[区域名]/Controllers/),以及控制器特性是否正确添加。
内容的提问来源于stack exchange,提问作者Abhijeet Patil
相关产品推荐
相关产品推荐

