文件夹内的 MVC 路由

MVC Routing Inside a Folder

我已经构建了一个带有控制器和视图以及以下路由的标准 MVC 应用程序:-

routes.MapRoute
(
  name: "PageNumber",
  url: "{controller}/{action}/page-{pageNumber}",
  defaults: new { controller = "Home", action = "PageNumber" }
);
routes.MapRoute
(
  name: "Default",
  url: "{controller}/{action}/{id}",
  defaults: new { controller = "Account", action = "Login", id = UrlParameter.Optional }
);

因为是后台系统,所以前面会有一个基本的HTML网站。这意味着我需要将我的网站路由到一个子文件夹中,以便 URL 看起来像这样:-

SubFolder/Controller/Action/{id}

在不更改所有硬编码链接以包含此子文件夹的情况下,我该怎么做。我不能为此使用 MVC 区域,所以想知道是否有一种方法可以更改路由以自动预先添加 URL 的 SubFolder 位?

谢谢!

您可以创建一条新路线:

 routes.MapRoute(
            name: "Subfolder",
            url: "Subfolder/{controller}/{action}/{id}",
            defaults: new { controller = "Account", action = "Login", id = UrlParameter.Optional }
        );

但是您不应该对链接进行硬编码,如果您未来计划替换基本 HTML 页面,您可以使用 @Html.ActionLink 为您生成锚标记。