MVC路由的一个问题。根目录下“Admin”控制器和 Areas的名也是“admin”该如何访问根目录下的admin控制器

禁用F3 2019-10-13 09:42:30
根目录下“Admin”控制器 和 Areas的名也是“admin”该如何访问根目录下的admin控制器

问题重点是,区域名和根目录下的控制品重名了要如何解决,不要告诉我换个名字噢,看有啥解决办法

RouteConfig.cs文件内容

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 },
namespaces: new string[] { "xxx.WEB.Controllers" } //加了这句可以访问根目录下其它控制器。
);
}


这是区域路由下的文件
AdminAreaRegistration.cs

public class AdminAreaRegistration : AreaRegistration
{
public override string AreaName
{
get
{
return "Admin";
}
}

public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Admin_default",
"Admin/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional },
new string[] { "xxx.WEB.Areas.Admin.Controllers" }
);
}
...全文
167 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
极客诗人 2019-10-15
  • 打赏
  • 举报
回复
区域配置 public override void RegisterArea(AreaRegistrationContext context) { context.MapRoute( this.AreaName + "_Default", this.AreaName + "/{controller}/{action}/{id}", new { area = this.AreaName, controller = "Home", action = "Index", id = UrlParameter.Optional }, new string[] { "XXXXX.Web.Areas." + this.AreaName + ".Controllers" } ); }
  • 打赏
  • 举报
回复
一般来讲,只要控制器名称没有相同的就可以,区域的名称和控制器名称相同的影响不是太大
EdsionWang 2019-10-15
  • 打赏
  • 举报
回复
你的路由规则不都写的很清楚了吗,根目录下的就/Controller/Action, Areas目录下的就/Admin/Controller/Action

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧