2011-10-10 60 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,然后在您的视图中检查该标志的状态。

但是,没有“正确”的方法来做到这一点。我认为你的第一种方法很好。

相关问题