1

尝试将 MVC 路由添加到我的项目以处理带有控制器的子文件夹。我的项目结构如下:

/控制器/

  • 家庭控制器
  • SomeotherController

/控制器/管理员

  • 管理员控制器
  • 一些控制器

/意见

  • 其他

/视图/管理员

  • 行政
  • 一些

问题是找不到管理文件夹中的控制器/视图并给出 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 }
    );
}

我知道我可以使用区域,但我不想创建新的 MVC 结构。我只是想将我的控制器和视图组织到一个管理文件夹中。

4

1 回答 1

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

于 2014-02-01T22:21:45.177 回答