2011-10-10 54 views
1

我使用MVC在我看來,一個我有一個下拉列表我只想查看某些管理員可見。MVC的意見作出的項目只有某些角色

我這樣做的:

@if (User.IsInRole("Administrator")) { 
     @Html.DropDownListFor(...) 
    } 

但是因爲我已經被告知這是不去做的方式,設置在視圖模型的下拉列表的可見性。

那麼下拉列表甚至不存在於視圖模型中。我有:

public SelectList AreaList { get; set; } 

它是用來填充下拉列表。

任何人都可以給我一些建議,我可以做些什麼來改善這一點?

回答

0

,我認爲他們的意思是把一個標誌您的視圖模型,指定它是否應該呈現的下拉列表與否。

這改變

@if (User.IsInRole("Administrator")) { 
    @Html.DropDownListFor(...) 
} 

@if (Model.ShouldDisplayAdminControls) { 
    @Html.DropDownListFor(...) 
} 

這可能是這種情況,如果你的團隊是不是/不希望使用自定義成員提供,或提供在該選項你想從會員移開事件(IsInRole方法使你的觀點被連接到你的用戶管理組件)

2

我不是你一直在說什麼,但我認爲他們的意思是我您可以在視圖模型中設置一個標誌,例如bool showDropDown,然後在您的視圖中檢查該標誌的狀態。

但是,沒有「正確」的方法來做到這一點。我認爲你的第一種方法很好。

相關問題