2010-09-24 55 views
2

我可以使用哪些模式上未涉及到一個單一的財產的MVC 2視圖中顯示錯誤?驗證/錯誤信息無關的物業

例如,當我調用Web服務來處理表單數據,Web服務可能會返回錯誤或拋出異常。我想顯示該錯誤的用戶友好版本,但沒有將錯誤與模型的任何給定屬性關聯的邏輯方法。

UPDATE:

試圖使用此代碼的建議,但不顯示摘要信息:

MyPage.spark:

Html.ValidationSummary(false, "Oopps it didn't work."); 

控制器:

ViewData.ModelState.AddModelError("_FORM", "My custom error message."); 
// Also tried this: ViewData.ModelState.AddModelError(string.Empty, "My custom error message."); 
return View(); 

UPDATE 2

這是什麼意思?

每個字段旁邊。

而不是總是顯示所有 驗證錯誤, 有一個新的選項,僅顯示 模型級錯誤 Html.ValidationSummary的輔助方法。這使得顯示在 模型級錯誤顯示每個字段旁邊 驗證摘要和 特定領域 - 錯誤。

來源:http://www.asp.net/learn/whitepapers/what-is-new-in-aspnet-mvc#_TOC3_14

具體地說,一個人如何添加模型電平誤差(相對於一個特定的場誤差)到模型?

更新3:

我今天上午Html.ValidationSummary沒有顯示任何錯誤可言,甚至沒有屬性的錯誤察覺。試圖理清原因。

+0

這個問題在一定程度上關係到一個,我問:http://stackoverflow.com/q/5697487/114029 – 2011-04-25 20:16:47

回答

2

ValidationSummary()擴展方法應該做的伎倆一起簡單地增加一個自定義的錯誤給ModelState對象。我使用類似"_FORM"這樣的關鍵字......這樣它就不會與任何字段衝突。

至於模式走,我有它設置,使我的業務邏輯層(通過從控制器服務調用)將拋出一個自定義異常如果有什麼預期不順心,我要顯示的視圖。此自定義例外包含Dictionary<string, string>屬性,該屬性存在任何應添加到ModelState的錯誤。

HTHS,
查爾斯

+0

我做這樣的事情,你有什麼建議。你能看看我更新的帖子,並讓我知道如果你看到一個問題? – 2010-09-27 00:43:51