2010-10-27 27 views
0

我有一種情況,控制器操作應該導致有關給定對象的信息以不同方式顯示,具體取決於用戶對對象的權限。在ViewModel上使用標誌的多個視圖或單個視圖

當前控制器操作代碼會相應地返回兩個視圖中的一個:Info.ascxInfo_ViewOnly.ascx。由於這兩個視圖之間的差異很小(我只需要更新每個格式更改),我正在考慮有一個視圖(Info.ascx)並將用戶的權限傳遞給視圖使用視圖的模型。

您認爲哪種方法更可取?備選建議也歡迎:-)

回答

1

您的視圖中存在「If Else」邏輯很好地表明您可能需要將視圖拆分爲多個相應的視圖。您的控制器可能是評估用戶權限並將請求路由到最合適視圖的最佳位置 - 因此,「If Else」邏輯可能應該發生在控制器而不是視圖中。

+1

似乎這兩個視圖將基於幾乎相同的模型。如果您要創建兩個不同的視圖,則會遇到代碼重用問題。 – 2010-10-27 16:12:39

+0

良好的UserControl使用可以幫助減少兩個視圖之間的冗餘代碼(例如兩個權限可用的核心菜單選項),但當新的需求進一步區分每個權限類型的表示組件時,分離視圖可以使未來的維護變得更容易。最終,我認爲這可能是一個案例,你可能花費太多時間來分割視圖 - 如果統一視圖是可維護的,那麼沒有堅定的規則說你不應該保持它的統一。 – 2010-10-27 17:05:43

+0

感謝您的建議 - 這真的是我的重點,我只是想知道是否有任何一種優先的約定。 – TonE 2010-10-28 09:13:43

相關問題