2011-06-09 70 views
1

我使用this great guide來本地化我的ASP.NET MVC 2應用程序,我幾乎追蹤到這封信。該應用程序主要是基於表單的。切換本地化時保留部分表單數據嗎?

我想知道是否有一種簡單的方法可以在填寫表單的過程中切換語言,而無需清除整個表單,並且必須重新開始?如果不是,你能否提出一種本地化應用程序的方法來支持它?

也許這不是個東西......

+0

最終顯示一條通知,表明如果他們切換語言,表單將被清除。 – 2011-06-15 13:55:44

回答

1

在文章中使用的方法是不是讓我猜測的定位最好的之一。

但是你可以做的是以下幾點:

  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); 
} 

不是最好的解決方案,但你可以用ATM最容易的一個。

相關問題