ASP.NET MVC3 Route - example.com/blog/projects to example.com/projects - PullRequest
1 голос
/ 17 декабря 2011

У меня в контроллере блога есть ActionResult, который возвращает все проекты с именем Projects, но мой URL выглядит как example.com/blog/projects, я хочу настроить маршрут, чтобы он выглядел как example.com/projects.

Возможно ли это? И если это так, то как я могу этого достичь?

Ответы [ 2 ]

2 голосов
/ 17 декабря 2011

Вы можете добавить маршрут к файлу 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
    );

}

Убедитесь, что вы поставили новый маршрут выше маршрута по умолчанию, иначе ваш маршрут никогда не будет пройден.

2 голосов
/ 17 декабря 2011

Вы должны зарегистрировать маршрут следующим образом Global.asax и указать его в качестве первого маршрута

routes.MapRoute("Projects", "Projects" , new { controller="blog" , action="Projects" });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...