Asp.net-Mvc

使用數據註釋的 MVC 驗證 - 模型類或視圖模型類?

  • July 26, 2010

將數據驗證註釋放在模型或視圖模型中是最佳實踐嗎?一種方法相對於另一種方法的優點/缺點是什麼?

很想知道每個人都在哪裡進行驗證,我目前正在模型項目中進行驗證。但是我看到一些人說這不是最佳實踐。

就最佳實踐而言,我會說:兩者都不是。驗證應該是分開的。FluentValidation等框架允許您將驗證邏輯與模型完全分離。但是要回答您的問題,我會將驗證放入視圖模型中,因為這些是您將控制器操作綁定到的類。您還可以有多個視圖模型,它們綁定到同一個模型但具有不同的驗證規則。

將您的註釋放在您的視圖模型中。

每個 DataModel 可以有多個 ViewModel,例如 DisplayModel、EditModel、ListModel .. 所有這些都可能需要不同的註釋。

通常認為最好不要將 DataModel 直接暴露給視圖,尤其是在“POST”/Edit 場景中。

我建議閱讀 Brad Wilson 的精彩概述:http ://bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2-templates-part-1-introduction.html

這些文章主要介紹了 MVC2 中 Dislpay 和 Edit 模板的使用,但清楚地說明了使用 ViewModel 模式的優勢

引用自:https://stackoverflow.com/questions/3338919