好奇最好的做法是將錯誤返回到控制器的視圖,其中錯誤不是真正的驗證錯誤,但更像是「用戶不是找到「或」服務超時「類型的錯誤。 (在ASP.NET MVC2框架中)如何返回錯誤從控制器查看不綁定到特定的模型屬性
我一直將它們添加到ModelState的模型錯誤中,但這看起來不合適。 (雖然易於實施和維護)
示例 - 用戶嘗試登錄,且其憑據與已知用戶不匹配。
好奇最好的做法是將錯誤返回到控制器的視圖,其中錯誤不是真正的驗證錯誤,但更像是「用戶不是找到「或」服務超時「類型的錯誤。 (在ASP.NET MVC2框架中)如何返回錯誤從控制器查看不綁定到特定的模型屬性
我一直將它們添加到ModelState的模型錯誤中,但這看起來不合適。 (雖然易於實施和維護)
示例 - 用戶嘗試登錄,且其憑據與已知用戶不匹配。
我相信你需要稍微清楚些什麼,你說的錯誤。
應該使用特定的異常處理程序來處理異常(超時,數據庫錯誤等)(尤其是因爲您通常不希望將錯誤消息顯示給最終用戶)。
在這種情況下,請查看過載控制器上的OnException()
方法。 (或具有所有的控制器從具有重寫以避免重複該方法的共同ControllerBase繼承)
您可能還需要處理異常時檢查的filterContext.HttpContext.IsCustomErrorEnabled
值,以確定是否公開詳細的異常信息,或者混淆了。
記住異常應該是例外情況 - 「正常」操作不應該導致異常
其他類型的你提的錯誤更像是「無法處理請求由於業務規則/無效輸入「(或類似),在這種情況下,向ViewModel添加錯誤消息似乎是適當的。他們可能不是直接的驗證錯誤,但他們很可能是用戶輸入的結果
我剛剛研究過這個,我認爲對於網絡相關的錯誤等等,這是必然發生的,它是確定使用TempData(但不要把Exception放在裏面,但是隻有異常消息,出於安全原因)。