2017-03-22 17 views
0

如何爲特定用戶隱藏MVC表單中的字段?MVC表單 - 限制表單中的字段

我有2種類型的用戶,我希望其中一個可以訪問完整的表單,但另一個只能訪問某些字段。

+4

有條件地使用if區塊來渲染表單字段。記住隱藏並不限制。你不應該渲染表單元素 – Shyju

+0

我甚至會考慮單個頁面加載基於用戶類型 – Fran

+0

的單獨部分視圖,你的處理數據的邏輯也需要進行必要的驗證 - 因爲任何人都可以發送_any_數據到您的網站。 – CBroe

回答

0

下面的代碼片段可以用來隱藏或顯示一段html,具體取決於用戶的角色分配。有關在MVC中實現角色的信息,請參見Role Identity
我使用下面的代碼根據用戶屬於哪個角色來應用標籤。它也可以用於隱藏字段。

@if (this.User.IsInRole("ProjectManager")) 
    { 
     <div id="rolelabel" class="text-muted text-xs" style="color:white;"> 
     Project Manager 
     </div> 
    } 

    @if (this.User.IsInRole("Developer")) 
    { 
     <div id="rolelabel" class="text-muted text-xs" style="color:white;"> 
     Developer 
     </div> 
    } 
+1

儘管這段代碼是受歡迎的,並且可以提供一些幫助,但如果它包含一個解釋,它會[大大改進](// meta.stackexchange.com/q/114762) *如何*和*爲什麼*這解決了這個問題。請記住,你正在爲將來的讀者回答這個問題,而不僅僅是現在問的人!請編輯您的答案以添加解釋,並指出適用的限制和假設。 –