asp.net MVC3 глобальный маршрут и жестко закодированные маршруты - PullRequest
2 голосов
/ 26 сентября 2011

У меня есть приложение, которое я использую глобальный маршрут для запроса текущего пути и возврата данных, специфичных для страницы.У меня есть настройки маршрутов, как это ...

routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

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

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

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

Проблема, с которой я сталкиваюсь, заключается в том, что когда я захожу в / Pages, чтобы попытаться добавить новые страницы, PageController срабатывает так, как и должно, но при отладке, после перехода к / Pages приложение затем делает запрос на HomeController.Я что-то упустил в настройках маршрутизации?

Ответы [ 2 ]

1 голос
/ 26 сентября 2011

Маршрут по умолчанию запускается из-за {* url}.Так что любая страница, которая не является / Pages, будет идти по маршруту по умолчанию.

Мне нужна дополнительная информация, но если вы пытаетесь сделать / Pages / что-то еще, вам нужно добавить дополнительный параметр на ваших страницахМаршрут:

routes.MapRoute(
       "Pages",
       "Pages/{page}",
       new { controller = "Pages", action = "Index", page = UrlParameter.Optional });
0 голосов
/ 26 сентября 2011

Ваш маршрут по умолчанию неверный.Он должен выглядеть как маршрут по умолчанию, как определено при открытии нового проекта MVC 3, например:

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...