为什么我的网址会显示所有索引操作?

时间:2012-10-06 08:37:40

标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-2 asp.net-mvc-routing

在我的asp.net mvc项目中,所有链接都显示了索引操作 例如:

  

localhost:1559 / Home / Index
  localhost:1559 / about-us / Index
  localhost:1559 / contact-us / Index
  localhost:1559 / portfolio / Index

为什么它不会隐藏索引操作?

我想这样表现出来:

  

localhost:1559 / Home
  localhost:1559 / about-us
  localhost:1559 / contact-us
  localhost:1559 /组合

这是我的全球文件代码:

public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.Add(
            new Route("{controller}/{action}/{Q1}/{Q2}",
                new RouteValueDictionary(
                    new { controller = "Home", action = "Index", Q1 = UrlParameter.Optional, Q2 = UrlParameter.Optional }),
                    new HyphenatedRouteHandler())
            );
            routes.Add(
            new Route("{controller}/{action}/{Q1}",
                new RouteValueDictionary(
                    new { controller = "Home", action = "Index", Q1 = UrlParameter.Optional }),
                    new HyphenatedRouteHandler())
            );
            routes.Add(
            new Route("{controller}/{action}",
                new RouteValueDictionary(
                    new { controller = "Home", action = "Index"}),
                    new HyphenatedRouteHandler())
            );
        }
谁能帮助我?

1 个答案:

答案 0 :(得分:0)

而不是

new Route("{controller}/{action}/{Q1}",

使用

new Route("{controller}/{Q1}",
每个

(你必须调整以适应参数)。

发生这种情况的原因是因为您的操作被称为“索引”。因此,您的路径将使用“index”操作的名称填充占位符{action}。