Предварительно добавьте страну и язык перед контроллером. - PullRequest
0 голосов
/ 04 января 2019

Меня попросили создать многострановую страницу, которая должна иметь различный базовый URL в зависимости от типа страницы.

Для большинства страниц это должен быть example.com/ndomcountry enj/ndomlanguage‹/home, для некоторых это будет просто / {страна} /, а для некоторых просто / {language} /

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

Я новичок в net core и не знаю, как подойти к этому решению.

1 Ответ

0 голосов
/ 06 января 2019

@ eVolve предоставил решение.

используя этот репозиторий, я смог сделать то, что мне было нужно. https://github.com/gpeipman/AspNetCoreLocalization

Хитрость заключалась в том, чтобы использовать помощники тегов asp-route- {value}, которые в сочетании с картой маршрутов позволяют задавать пути.

<li asp-route-country="uk" asp-route-lang="ru"><a asp-controller=@currentController asp-action=@currentAction asp-route-country="uk" asp-route-lang="ru">uk ru</a></li>

 routes.MapRoute(
                name: "LocalizedDefaultcl",
                template: "{country:country}/{lang:lang}/{controller=Home}/{action=Index}/{id?}"

            );
            routes.MapRoute(
                name: "LocalizedDefault",
                template: "{lang:lang}/{controller=Home}/{action=Index}/{id?}"
            );

            routes.MapRoute(
                name: "LocalizedDefaultCountry",
                template: "{country:country}/{controller=Home}/{action=Index}/{id?}"
            );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...