2009-11-20 61 views
5

我想知道如何在asp.net mvc中回傳後清除字段?就像現在發生驗證錯誤一樣,字段保持填充用戶輸入的任何內容。這很好,但是,當沒有發生驗證錯誤時,我想要清除所有字段並顯示一條消息。如何在asp.net mvc中回發後清除字段?

所以現在我通過使用ViewData成功顯示,但不知道如何讓字段清除。

回答

0

聽起來像是爲PRG (Post Redirect Get) pattern一份工作,因爲你不希望用戶刷新頁面,並再次提交。

爲此,我會在您的TempData中放置一條消息或標誌,以便您可以檢查當您重定向回原始URL然後向用戶顯示消息。

2

菲爾哈克說:

嘗試調用

ModelState["value1"].Value = new 
ValueProviderResult(null, 
string.Empty, 
CultureInfo.InvariantCulture); 

你從內 您的控制器動作返回視圖之前。

這樣做是保持與鍵值「value1」關聯的所有錯誤 ,但 用空值 替換該值。

From this SO question

-1

當您在視圖中發回模型時,您可以分配模型,新參考。
就是這樣。

if (ModelState.IsValid) 
    { 
     //Do your stuff here. 

     yourModel = new Moodel(); 
     return View(yourModel); 

    } 

在這種情況下,所有模型字段將爲空,並且沒有任何內容會顯示在窗體上。

+0

這不起作用,ModelState.Clear(),但是確實 – 2015-08-25 12:24:03

8

試試這個:

if(ModelState.IsValid) 
{ 
    ModelState.Clear(); 
} 
return View(); 
+0

可能還需要設置你的ModelState錯誤,該行後:) – stuartdotnet 2014-10-20 00:33:15