我有三个表:
Users(UserId, UserName)
Permissions (PermissionId, Name, Url)
PermissionLists (UserId, PermissionId) UserId,PermissionId联合主键,同时也是外键。
大家都看得出这三个表是和权限相关的基本表。
假定现在有一个编辑权限的页面:EditPermission.shtml,当前登录的是超级管理员,对一个普通管理员进行权限编辑。
假定现在总共有三项权限:AddUser, DeleteUser, EditUser。当前被编辑的普通管理员只有AddUser这一项权限。
问题1: 如何让这位被编辑的普通管理员已有的权限的Checobox处于选中状态。
问题2: 我使用的是EntityFramwork, 基本对象模型代码如下
public class User
{
public int UserId{get;set;}
public string UserName{get;set;}
public virtual ICollection<PermissionList> PermissionLists { get; set; }
}
public class Permission
{
public int PermissionId{get;set;}
public string Name{get;set;}
public string Url{get;set;}
public virtual ICollection<PermissionList> PermissionLists { get; set; }
}
public class PermissionList
{
public int UserId{get;set;}
public int PermissionId{get;set;}
}
在这个EditPermission.shtml页面里,我如果用User作为model,也就是在头部有一行这个玩意
@model MyProject.Entity.User, 通过Model.PermissionLists 属性我只能获取它已有的权限(在这里就是AddUser权限,上文有提到过),
那我如何在这个页面中显示三个Checkbox,而AddUser所属的这个Checkbox是选中的呢?
问题3:在我编辑完权限提交时(假定AddUser,DeleteUser,EditUser都被选中了),我用什么方式去处理提交呢?(我这里提供的是User对象,最终要修改的是PermissionLists表),在ActionResult中我提供的参数是(int userID, FormCollection collection)