1

我定义了以下路线:

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

routes.MapRoute(
            "Default",
            "{controller}/{action}/{id}/{title}",
             new { controller = "Home", action = "Index", 
                   id = UrlParameter.Optional, 
                   title = UrlParameter.Optional },
             new string[] { "MyCompany.Web.Controllers" });

我有一个名为 Pages 的控制器,它有一些操作,如“关于”、“常见问题”等,我想像这样访问:mywebsite.com/About

这目前有效,但现在我所有的其他控制器最终都在 url 中指定了它们的默认操作。我的操作链接Books呈现为 mywebsite.com/Books/Index。

如何修改我的路线以实现这一目标?

4

1 回答 1

1

对于所有其他这样的控制器,我会有一个更通用的路由(但把它放在下面的页面路由之后)

routes.MapRoute(
            "Content Pages",
            "{controller}",
            new { Home= "Home", action = "Index" });

并将您的 Pages 更改为更具体地针对这两个操作(假设您没有 About 或 Faq 控制器)。

routes.MapRoute("About Page", "about", new { controller = "Pages", action = "About" });
routes.MapRoute("FAQ Page", "faq", new { controller = "Pages", action = "FAQ" });
于 2012-12-17T16:56:32.557 回答