gpt4 book ai didi

asp.net-mvc - ASP.NET MVC3 View 授权设计

转载 作者:行者123 更新时间:2023-12-01 04:05:53 27 4
gpt4 key购买 nike

假设您有一个 protected 站点和一个可以以多种方式生成的 View ,具体取决于用户角色。比如说,管理员看到所有,经理看到一些列和一些操作按钮,用户看到其他列和其他操作按钮。

你将如何实现这一点?在我看来,主要有以下三种选择:

  • 具有 [Authorize] 属性的 Controller 和每个用户角色返回 1 个 View 的操作,这些 View 是为角色量身定制的;
  • 具有 [Authorize] 属性的 Controller 和为所有角色返回 1 个 View 的操作,具有隐藏/显示列、字段、按钮的逻辑;
  • 具有 [Authorize] 属性的 Controller 和返回 1 个 View 的操作,根据角色呈现不同的局部 View 。

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

    先感谢您

    最佳答案

    根据您观点的复杂性,第一个或第三个选项对我来说似乎都可以。至于第二种选择;通常建议避免 View 中的逻辑,所以我会远离那个。

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

    关于asp.net-mvc - ASP.NET MVC3 View 授权设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9394892/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com