что делать, если в mvc3 локализация и куки отключены - PullRequest
0 голосов
/ 18 марта 2012

Я работал над приложением mvc3 и пытался локализовать то же самое.Я наткнулся на этот очень хороший сайт, который заставил меня использовать логику определения выбора языка пользователем с помощью файлов cookie.Что он делает:

  1. Пользователь нажимает гиперссылку языка

  2. Выбранный параметр сохраняется в файле cookie

  3. Страница перезагружается

  4. В классе BaseController перегружен метод ExecuteCore, здесь читается файл cookie и устанавливаются CurrentUICulture и CurrentCulture.

Теперь это прекрасно работает.Но что, если пользователь отключил куки?Так что я чувствую, что это не сработает.Тогда я решил использовать обходной путь.Я попробовал

  1. Я создал HiddenField

  2. Пользователь нажимает гиперссылку языка

  3. Выбранный параметр сохраняется в файле cookie

  4. Выбранный параметр также сохраняется в HiddenField

  5. Страница перезагружается

  6. В классе BaseController метод ExecuteCore перегружен, здесь, если значение cookie присутствует, его чтение и CurrentUICulture и CurrentCulture установлены.

  7. Если cookie не найден, я попытаюсь прочитать значение скрытого поля из объекта запроса.

Но я не могу найти скрытое поле в объекте запроса в ExecuteCore method.

Так я что-то не так делаю?Пожалуйста, предложите мне несколько способов.Также я не хочу использовать маршрутный способ сохранения культуры.

1 Ответ

1 голос
/ 18 марта 2012

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

Также я не хочу использовать маршрутный способ сохранения культуры.

Если вы не включите значение в качестве части URL-адреса (строки запроса или маршрута), а файлы cookie отключены, значение культуры не будет достигнуто на вашем сервере.

...