加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – ASP.NET MVC3视图授权设计

发布时间:2020-12-16 09:46:57 所属栏目:asp.Net 来源:网络整理
导读:想象一下,您有一个安全的站点和一个可以通过多种方式生成的视图,具体取决于用户角色.比如,管理员看到所有,管理员看到一些列和一些操作按钮,用户看到其他列和其他操作按钮. 你会如何实现这个?据我所知,有三个主要选择: 具有[授权]属性的控制器和返回的操作1
想象一下,您有一个安全的站点和一个可以通过多种方式生成的视图,具体取决于用户角色.比如,管理员看到所有,管理员看到一些列和一些操作按钮,用户看到其他列和其他操作按钮.

你会如何实现这个?据我所知,有三个主要选择:

>具有[授权]属性的控制器和返回的操作1查看每个用户角色,即为角色定制的视图;
>具有[授权]属性的控制器和返回的操作1查看所有角色,具有隐藏/显示列,字段,按钮的逻辑;
>具有[Authorize]属性的控制器和返回1 View的操作,基于角色呈现不同的部分视图.

我更喜欢第三种方法,但您是否看到了更好的实现方法?

先感谢您

解决方法

根据视图的复杂程度,第一个或第三个选项对我来说似乎没问题.至于第二种选择;它通常建议避免视图中的逻辑,所以我远离那个.

如果你选择第三个选项,你应该考虑使用EditorTemplates和DisplayTemplates.这将允许您使(主)视图与要呈现的部分视图无关.
使您的viewmodel(或其一部分)继承自单个基类.为每个视图模型类型创建显示和/或编辑器模板,并在视图中只说Html.DisplayFor(…)或Html.EditorFor(…). MVC将自动选择正确的模板,而无需在视图中使用逻辑.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读