2011-08-08 100 views
1

在MVC 3應用程序中,我在控制器中有一些條件元素。例如我有一個數字表示「10」符合模型的狀態要求,但我有一個if語句來檢查數字「10」是否存在於另一個表中。如果它存在,數據是submited但如果它不存在我返回視圖,並希望返回一條錯誤消息。MVC控制器錯誤消息

我的問題是在這種情況下顯示錯誤的最佳方式是什麼。我已經着眼於返回一個viewbag消息,但是我想用一個方框來設置錯誤消息的樣式,並將這種樣式添加到視圖中,總是顯示出來,這是一個問題。

回答

4

您可以添加錯誤消息到ModelState中:

ModelState.AddModelError("somekey", "some error message"); 

,並使用驗證摘要助手視圖顯示錯誤信息裏面:

@Html.ValidationSummary(false) 

你當然可以串屬性添加到您的視圖模型,並在發生錯誤時設置其值。然後在視圖內檢查模型屬性是否有值,以及是否顯示自定義樣式元素內的錯誤消息。這看起來有點像輪子重建,假設您可以簡單地將錯誤消息附加到模型狀態,但值得一提。

+0

如果這是發佈後操作,您如何保留髮布的數據並返回完成的表單? – Sparkle

+0

@Sparkle,當您將POST視圖控制器操作從視圖中作爲參數返回時,您將傳遞相同的視圖模型。 –

+0

奇妙的工作!智慧的話拯救了我幾小時的感謝! – Sparkle

相關問題