RouteArea和RoutePrefix不能路由问题

尝试用asp.net mvc area功能,遇到加了route特性后不能路由问题,尝试后发现需要注意以下问题:

1.在项目中添加 区域(area)后,再在controller上增加RouteArea会冲突,要移除对应区域。(若只是为了在controller上层加一级路由,可移除区域,直接在controller上用RouteArea声明);
如下图最后访问地址是: …/api/operation/check

 

 2.用route功能要在路由注册时加下配置,routes.MapMvcAttributeRoutes();

 

 3.在controller上声明RoutePrefix后,该controller下的action都要声明Route,不然不能访问;

(注意:只使用RoutePrefix("xxxx")访问时会出现404错误,必须在控制器上同时加上[Route("{action}")]、[Route("{action=index}")]时,访问路径 /pms/sysmenu 会默认访问index方法)

[RoutePrefix("pms/sysmenu")]
[Route("{action}")]
public class SysMenuController : Controller
{
     public ActionResult Index()
     {
          return View();
     }
     public ActionResult Tes()
     {
          return View();
     }
}

 或者

[RoutePrefix("pms/sysmenu")]
public class SysMenuController : Controller
{
    [Route("index")]
    public ActionResult Index()
    {
        return View();
    }
    [Route("test")]
    public ActionResult Test()
    {
        return View();
    }
}

  

posted @ 2022-03-15 19:42  星空...  阅读(226)  评论(0)    收藏  举报