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();
}
}

浙公网安备 33010602011771号