尝试将MVC路由添加到我的项目中以处理带有控制器的子文件夹。我的项目结构如下:
/控制器/
/控制器/管理
/浏览次数
/查看/管理员
问题是找不到admin文件夹中的控制器/视图,并且发出了n HTTP404错误。
这是我的RouteConfig
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 }
);
routes.MapRoute(
name: "Admin",
url: "Admin/{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
我知道我可以使用Areas,但我不想创建一个新的MVC结构。我只是想将我的控制器和视图组织到一个管理文件夹中。
答案 0 :(得分:1)
您可以尝试将此新路线置于默认路线之前。
routes.MapRoute(
name: "Admin",
url: "Admin/{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
它起作用是因为路线从上到下进行评估,因为name: "Default"
处于最顶端,它处理了所有事情 - Satpal