ASP.NET MVC3 Route - example.com/blog/projects到example.com/projects

时间:2011-12-17 15:54:03

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

我的Blog控制器中有一个ActionResult,它返回了所有名为Projects的项目,但我的网址看起来像example.com/blog/projects,我想设置路线让它看起来像example.com/projects

有可能吗?如果是,那我该如何实现呢?

2 个答案:

答案 0 :(得分:2)

您必须按照Global.asax的方式注册路线并将其作为第一条路线

routes.MapRoute("Projects", "Projects" , new { controller="blog" , action="Projects" });

答案 1 :(得分:2)

您可以向Global.asax.cs文件添加路由,例如:

routes.MapRoute(
    "Projects", // Route name
    "Projects/{id}", // URL with parameters
    new { controller = "Blog", action = "Projects", id = UrlParameter.Optional } // Parameter defaults
);

所以它看起来像这样:

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

    routes.MapRoute(
        "Projects", // Route name
        "Projects/{id}", // URL with parameters
        new { controller = "Blog", action = "Projects", id = UrlParameter.Optional } // Parameter defaults
    );

    routes.MapRoute(
        "Default", // Route name
        "{controller}/{action}/{id}", // URL with parameters
        new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
    );

}

确保将新路线置于默认路线之上,否则永远不会被击中。