0

我有一个 ASP.NET MVC 4 应用程序。我正在尝试在 RouteConfig.cs 文件中设置我的路线。本质上,我有两个我目前感兴趣的 URL。这些 URL 是:

/App
/App/Auth

我的文件结构如下所示:

/Views
  App
    Index.cshtml
    Auth
      Index.cshtml
  Docs
    Index.cshtml
  Index.cshtml

在我的 RouteConfig.cs 文件中,我有以下内容:

routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

routes.MapRoute(
  "Index",
  "Index",
  new { controller = "Views", action = "Index" }
);

routes.MapRoute(
  "Dashboard", // Route name
  "{controller}/auth/{action}/{id}", // URL with parameters
  new { controller = "App", action = "Index", id = UrlParameter.Optional } 
);

routes.MapRoute(
  name: "Default",
  url: "{controller}/{action}/{id}",
  defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);

奇怪的是,当我访问 /App/Auth 时,它会将我带到 /App。对于我的生活,我无法弄清楚为什么。有谁知道如何做到这一点?谢谢!

4

2 回答 2

0

将路线更改为:

routes.MapRoute(
  "Dashboard", // Route name
  "App/auth/{action}/{id}", // URL with parameters
  new { controller = "App", action = "Index", id = UrlParameter.Optional } 
);
于 2013-01-05T18:43:27.023 回答
0

该应用程序正在按照您的要求进行操作。您的第一条路线转到控制器“App”和操作“Index”。将文件夹 Auth 移动到与 App 相同的级别,然后将您的路由更改为:

routes.MapRoute(
  "Dashboard", // Route name
  "app/auth/{action}/{id}", // URL with parameters
  new { controller = "Auth", action = "Index", id = UrlParameter.Optional } 
);

一个更好的解决方案,忘记 Auth 控制器,只需在 App 文件夹中创建一个视图 auth.cshtml 并在 App 控制器中创建一个操作“Auth”,然后您可以完全删除路由,/app/auth 将由默认路由。

于 2013-01-05T18:46:38.283 回答