Карта маршрута MVC 3 - PullRequest
       11

Карта маршрута MVC 3

0 голосов
/ 22 декабря 2011

В моем отображении есть 2 маршрута ...

это позволяет пользователю вводить URL с необязательным параметром для быстрой загрузки своего города на домашней странице веб-сайта, например:

www.mysite.com / manchester www.mysite.com/liverpool

или просто перейти на домашнюю страницу по умолчанию, если www.mysite.com введен ни с чем.

Имея сопоставление по умолчанию для управления контроллером / действием / параметром, я добавил дополнительный маршрут для передачи параметра:

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

routes.MapRoute(
    "HomePageQuickFind",
    "{quickFind}",
     new { controller = "Home", action = "Index", quickFind = UrlParameter.Optional });

Я не очень хорош в сопоставлении маршрутов, так как борюсьчтобы понять это, и мой вопрос, это плохой подход, который вызывает у меня «жадную маршрутизацию» и есть ли другой способ реализации моего сценария?

1 Ответ

1 голос
/ 22 декабря 2011

Я думаю, вам нужно заменить маршрут по умолчанию набором маршрутов для каждого из ваших контроллеров, а затем добавить свой маршрут быстрого поиска в качестве последнего маршрута. Это должно позволить любым несопоставимым маршрутам прорваться к маршруту быстрого поиска. Попробуйте что-то вроде этого:

// Routes for standard controllers
routes.MapRoute(
    "Home",
    "home/{action}/{id}",
    new { controller = "home", action = "index", id = UrlParameter.Optional }
);
routes.MapRoute(
    "Map",
    "map/{action}/{id}",
    new { controller = "map", action = "index", id = UrlParameter.Optional }
);
routes.MapRoute(
    "Default",
    "users/{action}/{id}",
    new { controller = "users", action = "index", id = UrlParameter.Optional }
);

// Route for www.mysite.com/cityname
routes.MapRoute(
    "QuickFind",
    "{quickFind}",
    new { controller = "home", action = "index", quickFind = UrlParameter.Optional }
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...