【问题标题】:MVC Routes - Hide IndexMVC 路由 - 隐藏索引
【发布时间】:2017-01-31 05:50:00
【问题描述】:

我试图在我的应用程序的索引操作中省略“/Index”。我知道有一百万个类似的帖子,但我的似乎有点不同。

基本上,我想将我的“家庭”控制器/动作设置为时间/仪表板,但仍然让“索引”成为每个其他控制器的默认动作。

当我的默认路由是“Home”“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 }
        );

【问题讨论】:

  • 您需要将您的操作方法名称从index 更改为dashboard..
  • 对。我猜如果所有的“索引”都变成了用户永远不会知道的“仪表板”。不过,这对我来说似乎有点俗气。但我明白你的意思。为什么我必须将 Dashboard 命名为“Dashboard”?我应该可以称它为“索引”,因为他们也永远不会看到它。问题基本上是未经身份验证的用户可以转到 http/myapplication 并查看 MyController/Index。而且我不想经过身份验证的用户去 http/myapplication 并查看时间/仪表板。我想我可以通过重定向来解决这个问题

标签: asp.net asp.net-mvc routing routes webpage


【解决方案1】:

我猜这是一个愚蠢的问题。

“home”或默认操作的实际名称并不重要,因为没有人会看到它。

所以我应该将其称为“索引”或将所有其他页面称为“仪表板”。

如果我有特殊情况,那么只需使用 RedirectToAction,如果我真的想隐藏 url,甚至返回另一个视图。

【讨论】:

    猜你喜欢
    • 2015-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-24
    • 2016-09-20
    • 2015-08-04
    • 2017-03-24
    相关资源
    最近更新 更多