由于您有管理员和用户,您可能需要创建一个“管理”区域和一个“用户”区域。我在下面建议的是,只有当您有一些想要隐藏角色的视图时。在管理区域中,您可以将授权属性添加到该区域的基本控制器,以便只有管理员可以更新内容。否则,如果您想隐藏更新按钮以防止不同的角色出现,则必须在视图中包含 if 语句,这可能会变得混乱。
更新:
以下是区域概述的链接。区域很好,因为您可以创建一个名为“Admin”的区域,在该区域内您将拥有与不同区域分开的控制器/视图/视图模型等。在此区域内,您可以包含更新内容的逻辑,而如果您不希望角色更新内容,则不要在其区域内包含逻辑。希望该链接能比我更好地解释它。
当我为我的项目使用区域时,我将创建一个基本控制器,我的所有控制器都从该控制器继承。我的基本控制器的示例如下:
[Authorize(Roles="Admin")]
public class AdminBaseController : Controller
{
...
}
然后在该区域的所有控制器中,我将从 AdminBaseController 继承,以便只有管理员可以访问网站的这一部分。
public class HomeController : AdminBaseController
{
...
}
http://www.dotnet-tricks.com/Tutorial/mvc/a9P1010113-MVC-Areas-with-example.html
在视图上添加 Authorize 属性:
例如,如果您只想让管理员查看 view.cshtml 文件,那么您可以对控制器操作执行以下操作:
[Authorize(Roles="admin")]
public ActionResult View()
{
....
}
如果用户不在该角色中,那么他们将能够访问该视图。
对于多个角色,您可以执行以下操作:
[Authorize(Roles="admin, user")]
public ActionResult View()
{
...
}
这将允许任何管理员或用户查看该页面。(他们不必同时担任这两个角色)。