2010-06-11 40 views
0

我有一個ActionResult返回從強類型的視圖,我手動驗證一些條件,通過一個錯誤消息,但想保留用戶的反應。如何在asp MVC 2中使用強類型視圖時保留視圖狀態?

由於我的看法是強類型的,我稱它是這樣的:雖然

​​

我的問題,是顯示錯誤消息,但所有的用戶數據被抹去。如何保留MVC中的「ViewState」?有沒有簡單的方法?

回答

1

你的行爲看起來像什麼?我使用的是這樣的:

[HttpPost] 
public ActionResult Edit(MyModel model) 
{ 
    if (ViewData.ModelState.IsValid) 
    { 
     // Whatever... 
    } 
    else 
    { 
     return View("Editmodel", model) 
    } 
} 
+0

謝謝,這將工作,但有一個問題,我使用一個ViewModel,但是當我有一個ActionResult與我的ViewModel作爲參數,我得到一個錯誤,說我需要一個無參數的方法,即使我的觀點是強烈鍵入(到我的ViewModel)。 – 2010-06-11 20:26:29

+0

@Mark Kadlec:你的行爲是否具有HttpPost屬性,你有兩個動作可供你編輯,一個用於查看,一個用於發佈? – 2010-06-11 20:32:43

+0

只有一個Post方法,它具有該屬性。 我打電話: \t的[AcceptVerbs(HttpVerbs.Post) 公衆的ActionResult下一頁(名單答案){...} ,這不會被調用。你能否沒有返回列表? – 2010-06-13 03:36:36

1

最好的辦法是根據表單信息重新填充SmartFormViewModel模型。

+0

感謝Bryan,我想這是選項,並不是什麼大不了的,我認爲可能會有一個更快的選項(銀色子彈),但是當我想到它時,我必須將整個HTML字符串存儲在內存中,而Formscollection更多的是一系列的結果。 至少很容易解析結果,好處是我現在可以完全控制要堅持的內容。謝謝。 – 2010-06-12 15:34:54