我有asp.net MVC 4应用程序,我想根据角色显示列。例如。以下是我的模特课。
public class Employee
{
public int Id {get;set;}
public string FirstName {get;set;}
public string LastName {get;set;}
public string Designation {get;set;}
}
在我看来,我只想在用户担任管理员角色时才显示指定栏。
我可以通过检查用户是否在角色中轻松地在视图上执行此操作。但那是我不想做的。我想在列基础上建立安全性。因此,如果我的用户没有管理员权限,则指定为空字符串。
ASP.NET MVC 4可以实现吗?任何帮助将不胜感激!。
答案 0 :(得分:0)
我不知道在MVC 4中有这样做的方法,除了你说的,在视图中做检查。
您可以考虑根据用户角色呈现完全不同的视图。
当然,这可能会导致其他问题,如重复代码等,但这是一个选项。
答案 1 :(得分:0)
我们的一个项目有类似的要求,在报告表中我们必须根据客户类型隐藏某些列。
由于我们的报告是使用ajax调用加载的,因此简单的show / hide没有意义。因为即使数据隐藏在html中,或者说你只删除或不在html上渲染那些列,仍然会在json响应中存在值。
相反,这就是你能做的。
根据用户类型,您可以拥有类,这些类将具有您希望向用户显示的属性。
例如,您可以从基类开始
public class EmployeeBase
{
public int Id {get;set;}
public string FirstName {get;set;}
public string LastName {get;set;}
}
然后是更具体的。
public class EmployeeAdmin : EmployeeBase
{
public string Designation {get;set;}
}
我的班级名称可能不合适,但你明白了。