2012-04-17 92 views
1

我不確定這是否適合我的問題,但我會試一試。如何在asp.net mvc 3應用程序中管理視圖管理

我們正在開始一個新產品的開發,這個新產品將使用asp.net mvc 3 razor作爲表示層。該應用程序有大約7-8個不同的角色,並且所有角色對於顯示數據都有不同的看法。 我在NHibernate的幫助下和幾個設計模式的實現中構建了一個很好的框架,所以這個應用程序的這一面將很容易調整和應用維護。

我希望表現層像我的框架一樣自適應,這就是爲什麼我想找出儘可能少的視圖儘可能少的所有不同類型的角色但具有完整功能的方法。您根據自己的角色將視圖分配給最終用戶的實施方式是什麼?

我想過如何使用jQuery模板,但是目前的可能性是視圖和剃刀語法,它聽起來有點不必要,而且不是優先選擇的方式。

,我應該牢記在開發這個應用程序將是不錯的,想想,常犯的錯誤,最佳實踐和建議等

期待您的回覆任何信息。

+0

你的問題似乎只是帶來頭腦一百萬嗎?忘記所有nhibernate的東西和夫婦設計等,並重新寫你的問題,以澄清你試圖達到什麼,因爲說實話,你的問題似乎更像是評論或博客文章 – davethecoder 2012-04-17 21:27:46

+0

我認爲主要問題應該是:什麼您是否根據自己的角色將視圖分發給最終用戶?你對其他東西的權利! – 2012-04-18 05:45:07

回答

2

減少視圖數量的一種方法是使用IsInRole()(或者等價物,如果您有自定義的話)並結合部分視圖。在最簡單的情況下,您可以擁有一個基於特定角色呈現其中的部分視圖的視圖。沿線的一些東西:

@if (HttpContext.Current.User.IsInRole("admin")) { 
    @Html.Partial("_StuffForAdmins") 
} 

根據您的情況,可以跨多個不同角色共享部分視圖,從而減少重複代碼。可以由所有角色公開訪問的用戶界面元素可以放在視圖本身上,而不需要檢查角色。

編輯:另一種語法是:

<div> 
     @if (Context.User.IsInRole("admin")) 
     { 
      @Html.Partial("_StuffForAdmins") 
     } 
    </div> 
+0

這可能是我的問題的答案。我會查看它並在我的原型中實現它以查看它的工作原理。感謝您的建議! – 2012-04-18 05:42:42

+0

沒問題!我希望它有幫助。 – 2012-04-18 14:21:43