0

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

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

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

我想这样展示:

localhost:1559/首页
localhost:1559/about-us
localhost:1559/contact-us
localhost:1559/portfolio

这是我的全局文件代码:

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())
            );
        }

谁能帮我 ?

4

1 回答 1

0

代替

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

利用

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

对于每一个(您必须进行调整以适应参数)。

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

于 2012-10-07T00:45:58.573 回答