Разные URL в зависимости от языка / культуры в ASP.net - PullRequest
1 голос
/ 07 июня 2011

На сайте с поддержкой нескольких культур я планирую использовать следующие маршруты:

routes.MapRoute(
             "ProductsStartPage",
             "{lang}/Products",
             new { lang = defaultLanguage, controller = "Products", action = "Index" }
        );
        routes.MapRoute(
            "ProductsCategoryPage",
            "{lang}/Products/{category}",
            new { lang = defaultLanguage, controller = "Products", action = "Category" }
        );
        routes.MapRoute(
            "ProductPage",
            "{lang}/Products/{category}/{product}",
            new { lang = defaultLanguage, controller = "Products", action = "Product" } 
        );

Второй язык будет иметь Produkter вместо Products в URL.

Как бы я продолжил эту работу, не создавая другой MapRoute для каждого языка / культуры?

1 Ответ

2 голосов
/ 07 июня 2011

Я бы не боялся создавать другой маршрут для каждого языка.

Значение для контроллера в маршруте является существенным. Это значение, которое вы хотите изменить, поэтому вам нужно место, где вы храните разные значения для каждого языка.

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

Обратите внимание, что вам нужны уникальные имена маршрутов, поэтому вы должны добавить или добавить имя / код языка в вашем цикле, чтобы вы могли создавать маршруты с уникальными именами.

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