這可能太想了一個問題,但尋求幫助!ASP.NET MVC - 用戶輸入和服務/存儲庫 - 在哪裏做驗證?
我一直在努力改進我的ASP.NET MVC程序結構。我剛開始在預覽版5上使用它,這是我第一次進入商業應用程序開發 - 所以每一個都是新的!
在控制器級別,我有責任與版本庫,並採取所有的業務邏輯的護理服務對象。在動作級別,我有一個保存所有視圖數據的對象 - 用戶輸入和生成的輸出 - 我將調用視圖對象(這是否有一個通用術語?)。與我看到的大多數示例不同,此對象不是數據庫對象,而是特定於視圖的對象。
所以現在我要添加用戶驗證。問題是,我不知道該把它放在哪裏。對我來說,最重要的是在服務層中完成它。服務層負責所有業務邏輯,驗證是業務邏輯。另一方面,我所看到的大多數驗證框架都用於驗證對象,這讓我認爲視圖對象應該是驗證意識。最後,還有一些需要數據庫連接的驗證方法(例如檢查用戶輸入字段是否具有相應的數據庫記錄),並且視圖對象沒有數據庫的概念,只有服務。
所以一些選項我看到的是:
- 驗證是否在傳遞到方法的參數Service.Method。
- 在調用Service.Method之前在視圖對象中進行驗證。
- 在視圖對象中進行驗證,但是使Service.Method需要一個視圖對象引用,以便它啓動對該對象的驗證。
我敢肯定有更多。我很好奇其他人如何處理MVC意義上的用戶輸入驗證。我以前使用過企業驗證塊,並且喜歡能夠使用股票驗證器來處理所有事情,但我不確定如何使它適合單獨的視圖對象和服務層。如果他們(視圖對象/服務)是同一個對象,這也許是人們做的事情,那將是容易的事情?就像我說的,它對我來說都是新的,我正在尋找最佳實踐/模式。