Должен ли я заменить строковые шаблоны в asp.net mvc, используя собственный viewengine? - PullRequest
0 голосов
/ 30 марта 2010

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

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

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

Ответы [ 2 ]

0 голосов
/ 01 апреля 2011

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

Культивированный движок для MVC

0 голосов
/ 30 марта 2010

Мой ответ (в настоящее время):

Приложение имеет базовый контроллер, там я добавил:

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, но по крайней мере должно быть достаточно, чтобы показать, как это можно обрабатывать централизованно, без замены строковых значений.

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

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