一、关于控制器重名问题

1.没有区域的时候控制器不能重名

2.有区域的时候,外部控制器和区域中的控制器重名,访问外部控制器异常,访问区域控制器正常。

3.区域和区域之间的控制器重名,互不影响。区域从某种程度上,起到一层命名空间的作用

Asp.Net Mvc控制器重名问题整理

Asp.Net Mvc控制器重名问题整理

 

二、解决方案-为路由指定命名空间

routes.MapRoute(
    name: "Default",
    url: "{controller}/{action}/{id}",
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
    namespaces: new[] { "MVC_Base1.Controllers" } //指定控制器命名空间
);

三、解决方案,使用区域,如果外部控制器和区域控制器有重名,则为外部路由指定命名空间。

 注:获取区域名称需要在路由参数的DataTokens中获取

RouteData.DataTokens["area"]= above

RouteData.Values["area"]=


RouteData.Values["controller"]= Home

RouteData.DataTokens["controller"]=


RouteData.Values["action"]= Index

RouteData.DataTokens["action"]=

更多:

路由配置4-伪静态

相关文章:

  • 2021-07-16
  • 2022-02-21
  • 2021-10-09
  • 2021-12-02
  • 2022-01-01
  • 2022-01-01
  • 2021-07-04
猜你喜欢
  • 2022-12-23
  • 2022-01-01
  • 2022-12-23
  • 2021-11-10
  • 2022-12-23
  • 2021-05-16
  • 2021-05-10
相关资源
相似解决方案