在我的应用程序中存在一个小角色系统。 "联系" "正常"用户。在我的应用程序中,我在表中显示数据。管理员必须能够创建,编辑和删除这些数据,但"正常"用户不得。
所以我认为基于用户不同的视图显示将是一个好主意。但我目前正在努力实施。
控制器:
public ActionResult Index()
{
if(model.IsAdmin)
{
... // get data
}
else
{
... // get data, but less, or different
}
return (model.IsAdmin) ? this.View("AdminView") : this.View("NormalView");
}
它可能看起来像这样。
谢谢你,以及最好的问候
答案 0 :(得分:1)
这样做的一种方法可能是
public ActionResult Index()
{
if(model.IsAdmin)
{
... // get data
return view("AdminView")
}
else
{
... // get data, but less, or different
return view("NormalView")
}
//no need to perform extra checks
}
答案 1 :(得分:1)
1。 最确定这不是一个好习惯。
您应该尝试为每个角色创建不同的控制器。或者您可以使用区域指向管理员。
如果你只是加载一个不同的视图,访客用户仍然可以在网址栏中引入类似“/ admin / deleteSmth / 1”的内容,并执行管理操作。
如果您实施不同的控制器或区域,那将是最好的。
您应该将逻辑远离视图。视图仅用于渲染数据。这应该是全部。如果您有业务逻辑层,则所有逻辑都应高于控制器。
http://www.codeproject.com/Tips/601504/Using-areas-in-ASP-NET-MVC-to-organize-a-project。区域,使用它们。