我想我可能會弄亂我的控制器。我有一個相當簡單的網站,允許「職員」或「客戶」類型的用戶查看項目。工作人員可以訪問所有項目,可以添加和刪除它們,添加和刪除用戶,爲客戶分配項目權限等。如何管理ASP.NET MVC2中用戶類型之間的顯着功能差異
現在這意味着我有一個UserController和ProjectController,充滿了身份驗證屬性(即。so客戶可以更改他的電子郵件,但沒有其他權限,客戶不能添加/刪除/編輯項目,但可以瀏覽其內容)。
而且,基於用戶類型/角色,我切換出菜單組件。我是否應該將我的控制員分成更窄的焦點,還是這個地區的候選人?我覺得我的很多代碼都在檢查用戶X是否可以根據他的角色和顯式的每個項目權限來執行操作Y.
PS。我重寫了主題幾次試圖把它縮短:\
是的,這可能是要走的路。我確實以ie開頭。 UserAdminController,但我結束了太多的重複。我會看看我是否可以清理一下。 – 2010-08-14 09:05:40
您可以隨時在控制器之間共享常用功能......記住,控制器實際上只不過是類 - 它只是命名約定(使框架調用正確的方法)使它們看起來「神奇」。 此外,永遠不要低估使用不同ViewModels實現不同功能的能力..您的主控制器代碼可能保持不變,但呈現給View的數據(包括顯示類型屬性等)可能因您決定的視圖而異以呈現您所傳遞的數據(包括實際數據和元數據)。 – JcMaltaDev 2010-08-14 11:27:14