Сохранять частичные данные формы при переключении локализации? - PullRequest
1 голос
/ 09 июня 2011

Я использовал это замечательное руководство , чтобы локализовать свое приложение ASP.NET MVC 2, которому я следовал почти до буквы. Приложение в основном на основе формы.

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

Может быть, это не вещь ...

1 Ответ

1 голос
/ 10 июня 2011

Подход, использованный в статье, не самый лучший для сохранения локализации.

Но вы можете сделать следующее:

  1. Обрабатывать событие, когда пользователь нажимает на языковую ссылку.
  2. Смена языка через ajax, не позволяющая браузеру перейти на фактическую ссылку.
  3. Отправьте форму, которую пользователь редактирует, добавив параметр с надписью «убедитесь, что вы не сохраняете».
  4. Сервер выполнит повторную визуализацию формы, как обычно, с опубликованными данными, но на новом языке.

псевдокод JavaScript:

var submitCurrentForm = function() {
  $("form:last").submit({
    data { dontSave: "True"} // this is just meta, you can use QueryString or hidden input
  });
}

var switchLanguage = function(href, done) {
  $.post(href).success(done); // using jQuery deferred
}



$("a.lang").click(function(e) {
  e.preventDefault();
  switchLanguage(this.href, submitCurrentForm);
});

Псевдокод контроллера:

public ActionResult Create(YourStuff stuff, bool dontSave = false) {
  if (!dontSave)
    ProcessTheStuff();
  return View(stuff);
}

Не лучшее решение, но самое простое в банкомате.

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