切换本地化时保留部分表单数据?

时间:2011-06-09 15:21:06

标签: c# asp.net-mvc forms localization

我使用this great guide来本地化我的ASP.NET MVC 2应用程序,我几乎遵循了这封信。该应用程序主要基于表单。

我想知道是否有一种简单的方法可以在填写表单的过程中切换语言而不清除整个表单,并且必须重新开始?如果没有,您能否建议一种本地化支持此应用程序的应用程序?

也许这不是一件事......

1 个答案:

答案 0 :(得分:1)

本文中使用的方法不是保持本地化的最佳方法。

但你能做的是以下几点:

  1. 当用户点击语言链接时处理事件。
  2. 通过ajax更改语言,阻止浏览器转到实际链接。
  3. 提交用户正在编辑的表单添加参数说“请确保您不保存”。
  4. 服务器会像发布的数据一样正常重新呈现表单,但是使用新语言。
  5. 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);
    }
    

    不是最好的解决方案,但最容易使用ATM。