MVC 路由 - 隐藏索引
MVC Routes - Hide Index
我试图从我的应用程序的索引操作中省略“/Index”。我知道有一百万个类似的帖子,但我的帖子似乎有点不同。
基本上,我想将 "home" controller/action 设置为 Time/Dashboard,但仍将 "Index" 设置为所有其他控制器的默认操作。
当我的默认路线是 "Home" "Index" 时。其他页面都很好。 "Index" 会隐藏。但后来我把它改成了"Dashboard"。所以现在当我导航到任何 controller/Index 时。它需要“/Index”,否则我会得到 404。现在这是我的路线:
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Time", action = "Dashboard", id = UrlParameter.Optional }
);
我想这是一个愚蠢的问题。
"home" 或默认操作的实际名称并不重要,因为没有人会看到它。
所以我应该将其命名为 "Index" 或将我的所有其他页面命名为 "Dashboard"。
如果我有特殊情况,那么只需使用 RedirectToAction,如果我真的想隐藏 url,甚至 return 另一个视图。
我试图从我的应用程序的索引操作中省略“/Index”。我知道有一百万个类似的帖子,但我的帖子似乎有点不同。
基本上,我想将 "home" controller/action 设置为 Time/Dashboard,但仍将 "Index" 设置为所有其他控制器的默认操作。
当我的默认路线是 "Home" "Index" 时。其他页面都很好。 "Index" 会隐藏。但后来我把它改成了"Dashboard"。所以现在当我导航到任何 controller/Index 时。它需要“/Index”,否则我会得到 404。现在这是我的路线:
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Time", action = "Dashboard", id = UrlParameter.Optional }
);
我想这是一个愚蠢的问题。
"home" 或默认操作的实际名称并不重要,因为没有人会看到它。
所以我应该将其命名为 "Index" 或将我的所有其他页面命名为 "Dashboard"。
如果我有特殊情况,那么只需使用 RedirectToAction,如果我真的想隐藏 url,甚至 return 另一个视图。