MVC3 маршрутизация с необязательным первым параметром - PullRequest
1 голос
/ 27 октября 2011

Мой сайт в настоящее время настроен по следующим маршрутам:

        routes.MapRoute(
            "BrandList",
            "Brands",
            new { controller = "Brand", action = "Index" }
        );

        routes.MapRoute(
            "BrandProducts",
            "{brand}/Products",
            new { controller = "Brand", action = "Products", manufacturer = "" },
            new { manufacturer = new BrandConstraint() }
        ); 
        routes.MapRoute(
            "Product",
            "{brand}/{partNumber}",
            new { controller = "Product", action = "Details", brand = "" },
            new { manufacturer = new BrandConstraint() }
        );

Это производит URL-адреса, такие как

http://oursite/Brands                     -> List of all brands
http://oursite/SomeBrand                  -> List of one brand's products
http://oursite/SomeBrand/ProductA         -> Details for product

Я только что получил директиву, которую нам теперь нужно обслуживатьдо тех же самых страниц на

http://oursite/Brands                     -> List of all brands
http://oursite/SomeBrand                  -> List of one brand's products
http://oursite/Brands/SomeBrand           -> List of one brand's products
http://oursite/SomeBrand/ProductA         -> Details for product
http://oursite/Brands/SomeBrand/ProductA  -> Details for product

Я знаю, что могу создать еще два Маршрута, идентичных текущим BrandProducts и Product маршрутам, с дополнительными «Брендами /» в начале.Я сделаю это, если понадобится, но я бы предпочел не дублировать каждую запись маршрута (это больше, чем только эти два).

У кого-нибудь есть предложения?

1 Ответ

0 голосов
/ 27 октября 2011

Возможно, вы захотите просто попробовать перезаписать URL вместо добавления сложности дополнительных маршрутов, указывающих на то же место.

Также не хорошо иметь несколько допустимых канонических форматов URL-адресов, на самом деле нужно «301» для «правильного» URL.

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