2010-10-07 36 views
1

在我的web應用中,點擊ASP.NET MVC表單上的提交按鈕後,用戶將顯示錯誤屏幕或成功屏幕。在出現錯誤的情況下,指示用戶單擊瀏覽器上的返回按鈕並修復他們不正確的操作,然後嘗試再次提交。ASP.Net MVC2 - 發佈後,如果用戶點擊後退按鈕,如何清除表單?

這可以正常工作,因爲當用戶點擊回來時,所有以前輸入的數據仍然在各個字段的屏幕中。但是在成功屏幕的情況下,如果用戶單擊後退,我希望數據被清除,以便他們不會再意外地重新提交數據。

在ASP.NET MVC中如何做到這一點?

回答

1

您可以完成此操作的方式是使用Post-Get-Redirect模式。這不是ASP-MVC特定但由於維基說,這

一個常見的設計模式爲Web開發人員,以幫助避免某些重複的表單提交,並允許用戶代理與書籤和刷新按鈕更直觀地表現。

點擊後面不是安全的方式來處理這個。提交後,某些瀏覽器不保留表單狀態。這種模式直接解決了accidentally re-submit數據問題。

在代碼方面,請看Jag Reehal關於如何進行單元測試控制器的博文。

[HttpPost] 
public ActionResult Create(SomeViewModel model) 
{ 
    if (ModelState.IsValid) 
    { 
    // do some stuff that saves your data and then... 
    return RedirectToAction("Success"); 
    } 
    else 
    { 
    // your model is not valid so return the form back to the user for 
    // additional modifications. 
    return View(model); 
    } 
} 

注意:在上面的用途ModelState數據驗證,你可以有自己的一套,也可以在此模式中使用的驗證和錯誤檢查例程。

+0

我以前試過,它沒有爲我工作,但也許我做錯了什麼。讓我再試一次,回到你身邊。 – Pretzel 2010-10-08 16:57:17

+0

@pretzel - 任何進展? – Ahmad 2010-10-12 09:05:02

+0

仍然沒有運氣。我會嘗試複製我在測試項目中所做的工作(喵,刪除所有不必要的代碼,以便我可以告訴你我在做什麼。)我會在幾天後回覆。感謝您檢查我! :) – Pretzel 2010-10-12 13:29:48

相關問題