ASP.NET MVC3路由-example.com/blog/projects到example.com/projects

ASP.NET MVC3路由-example.com/blog/projects到example.com/projects,asp.net,.net,asp.net-mvc,asp.net-mvc-3,Asp.net,.net,Asp.net Mvc,Asp.net Mvc 3,我的博客控制器中有一个ActionResult,它返回所有名为projects的项目,但我的URL看起来像example.com/Blog/projects,我想设置一个路径,使它看起来像example.com/projects 可能吗?如果是这样的话,我该如何实现呢?您必须注册route following way Global.asax并将其作为第一条路线 routes.MapRoute("Projects", "Projects" , new { controller="blog" , a

我的博客控制器中有一个
ActionResult
,它返回所有名为
projects
的项目,但我的URL看起来像
example.com/Blog/projects
,我想设置一个路径,使它看起来像
example.com/projects


可能吗?如果是这样的话,我该如何实现呢?

您必须注册route following way Global.asax并将其作为第一条路线

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

您必须注册route following way Global.asax并将其作为第一条路线

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

您可以将路由添加到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
    );

}

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

您可以将路由添加到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
    );

}

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

非常感谢,现在我也知道如何满足其他需求。非常感谢,现在我也知道如何满足其他需求。