Один из моих сотрудников написал это приложение в .netCore 3.1 около 18 месяцев назад. Он работает «до некоторой степени», но я чувствую, что он раздут и, возможно, не лучшим образом. Я работаю где-то, где все наши приложения должны быть двуязычными, и почти в каждом учебнике вы увидите локализацию пользовательского интерфейса, но не маршрутизацию.
Приложение работает, как я указал, но есть ряд ограничений, которые, как мне кажется, делают его довольно неэффективным. Такие вещи, как ‘ [TranslatedRoute(«en», «home»)]’декоратор, который не позволяет мне использовать ресурс. Кроме того, каждое действие должно быть уникальным, т. Е. Я не могу использовать List как действие на каждом контроллере, он должен быть уникальным, поэтому мы использовали List-Entityname для маршрутизации, но я считаю это ограничением. Это также делает замену новых контроллеров более длительной и более подверженной ошибкам.
Вот пример из моего startup.cs
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute("default", "{culture=en}/{controller=home}/{action=index}");
endpoints.MapDynamicControllerRoute<TranslationTransformer>("{culture}/{controller=home}/{action=index}/{id?}");
});
Я собрал очень, очень упрощенный .Sln, на который я ссылался ниже, у него есть некоторая рабочая маршрутизация на домашней странице, и я добавил раздел «Администратор» с двумя контроллерами. Уже в этот момент я теряю контроль над маршрутизацией, и приложение возвращается к использованию имен действий вместо маршрутизации, которую я добавил.
Моя цель — просто разработать умный шаблон для создания нового многоязычного веб-сайта, когда это необходимо.
Если я каким-то образом пропустил одно руководство, в котором показано, как это уже сделать, по крайней мере, в .NetCore 3.1, пожалуйста, дайте мне знать, и я перестану пытаться изобретать велосипед.
В противном случае, пожалуйста, посмотрите мой простой проект здесь — Ссылка на GitHub
Обратите внимание, я впервые публикую публичный проект на GitHub.
