Должен ли я заменить шаблоны строк в asp.net mvc, используя специальный механизм просмотра?

StackOverflow https://stackoverflow.com/questions/2543055

Вопрос

Иметь локализованный сайт ASP.NET MVC.Функция локализации добавляет к URL-адресу двухзначный идентификатор языка, например:/ес/Страница.Если в URL-адресе не найден идентификатор языка, сайт переключается на культуру браузера пользователя.Все хорошо.Однако гиперссылки сайта, смесь жестко запрограммированных тегов href, ссылок действий и т. д., не включают идентификатор базового языка, поэтому при переходе по сайту установленная культура теряется, и сайт возвращается к культуре браузера пользователя. .

Моя (ленивая) мысль состоит в том, чтобы заменить все значения href, которые не указывают на внешний сайт, локализованным URL-адресом (например,включите /es/).В противном случае все ссылки на сайт необходимо будет обновить, включив в них код культуры.

Это просто тупо?Или это разумно, и это следует делать с использованием специального механизма представления или какого-либо другого подхода?

Нет правильного решения

Другие советы

Мой ответ (на данный момент):

В приложении есть базовый контроллер, туда я добавил:

if (PathLanguageCode == "" && requestContext.HttpContext.Session["LanguageCode"] != null && requestContext.HttpContext.Request.RequestType == "GET")
{
    requestContext.HttpContext.Response.Redirect("/" + requestContext.HttpContext.Session["LanguageCode"] + requestContext.HttpContext.Request.RawUrl);
}

В этом примере не показано, как определяется переменная PathLanguageCode, но его, по крайней мере, должно быть достаточно, чтобы показать, как это можно обрабатывать централизованно, без замены строковых значений.

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

Если хотите, вы можете посмотреть мой подход, который мы использовали.Здесь говорится о размещении культуры в URL-адресе.Надеюсь, поможет!

Механизм культурного представления для MVC

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top