假设我有一个 MVC 视图,其中包含一组可供非授权用户使用的功能,以及一组可供授权用户使用的扩展功能。目前,我已经通过标记我的观点来实现这一点
@if(User.IsInRole(...)) {...}
在视图文件的几个地方。当经过身份验证的用户在未经身份验证的功能之外只能做两三件事时,这没什么大不了的,但是现在我在“仪表板”类型的页面中到处都是。好像有点乱了
有没有更干净或更优雅的方式来实现这一点?我正在使用视图模型。我想知道是否应该根据角色使用不同的视图模型/视图,但是使用不同的视图模型似乎更难以维护。我不确定最佳实践是什么,我对想法持开放态度。
编辑
我正在做的一个例子:我有几个允许经理编辑记录的列表/表格,所以代码添加了一个额外的
<td>
对于经理允许的操作。另一个用例:当经理登录时,员工姓名现在是一个操作链接,而不仅仅是文本。