接下来完成用户、角色的增删查改,以及用户角色、权限的设置

对用户表、角色表做了一些扩展如下【可以更加自己需要增减字段】

相应的M_UserProfile.cs、M_Roles.cs进行扩展

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Web; namespace MVCSystem.Web.Models
{ [Table("UserProfile")]
public class M_UserProfile
{
[Key]
[Display(Name = "ID")]
public int UserId { get; set; } [Display(Name = "用户名")]
[StringLength()]
public string UserName { get; set; } [Display(Name = "邮件地址")]
[StringLength()]
public string Email { get; set; } [Display(Name = "真实姓名")]
[StringLength()]
public string RealName { get; set; } [Display(Name = "状态")]
public int State { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Web; namespace MVCSystem.Web.Models
{ [Table("webpages_Roles")]
public class M_Roles
{ public M_Roles()
{
T_Members = new List<M_Membership>();
T_PermissionsInRoles = new List<M_PermissionsInRoles>();
} [Key]
[Display(Name = "ID")]
public int RoleId { get; set; } [Display(Name = "名称")]
[StringLength()]
public string RoleName { get; set; } [Display(Name = "状态")]
public int State { get; set; }
public ICollection<M_Membership> T_Members { get; set; } [ForeignKey("RoleId")]
public ICollection<M_PermissionsInRoles> T_PermissionsInRoles { set; get; } }
}

接下来编写控制器以及视图的代码

UsersController.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.Mvc;
using System.Web.Security;
using MVCSystem.Web.Common;
using MVCSystem.Web.Filters;
using MVCSystem.Web.Models;
using WebMatrix.WebData; namespace MVCSystem.Web.Areas.Admin.Controllers
{
[InitializeSimpleMembership]
public class UsersController : BaseController
{
//
// GET: /Admin/Users/
/// <summary>
/// 获取数据列表
/// </summary>
/// <returns></returns>
public ActionResult Index()
{
return View();
}
public JsonResult GetList(GridPager pager)
{
var aList = db.DB_UserProfiles.ToList();
aList = aList.OrderByDescending(a => a.UserId).ToList();
var json = new
{
results = aList.Count,
rows = aList.Select(a => new
{
UserId = a.UserId,
UserName = a.UserName,
UserEmail = a.Email,
RealName = a.RealName,
State = (a.State==)?"启用":"禁用",
UserRole=getRoleName(a.UserId),
CZ = "<a href='javascript:;' onclick='SetRole(" + a.UserId + ")' id='SetRole'>角色设置</a><a href='/Admin/Users/UserProfilesEdit/" + a.UserId + "' id='Edit'>编辑</a><a href='javascript:;' onclick='DeleteShow(" + a.UserId + ")' id='Delete'>删除</a>" }).Skip((pager.pageIndex) * pager.limit).Take(pager.limit).ToArray()
};
return Json(json, JsonRequestBehavior.AllowGet);
}
private string getRoleName(int UsId)
{
var gg = (from a in db.DB_UsersInRoles
join b in db.DB_Roles
on a.RoleId equals b.RoleId
group new { a, b } by new { a.UserId, b.RoleName } into kk
select new
{
userId = kk.Key.UserId,
roleName = kk.Key.RoleName
}).ToList();
var getRoleNameStr = String.Join("、", gg.Where(d => d.userId == UsId).Select(e => e.roleName).ToArray());
return getRoleNameStr;
} /// <summary>
/// 删除数据操作
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpPost]
public JsonResult UserProfilesDelete(int id)
{
if (id > )
{
var aList = db.DB_UserProfiles.Find(id);
db.DB_UserProfiles.Remove(aList);
db.SaveChanges();
return Json(, JsonRequestBehavior.AllowGet);
}
else
{
return Json(, JsonRequestBehavior.AllowGet);
}
}
/// <summary>
/// 编辑数据操作
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public ActionResult UserProfilesEdit(int id)
{
var aList = db.DB_UserProfiles.Find(id);
return View(aList);
}
[HttpPost]
public ActionResult UserProfilesEdit(int id, FormCollection collection)
{
var aList = db.DB_UserProfiles.Find(id);
if (TryUpdateModel(aList))
{
aList.State =(collection.Get("State")=="")?:;
db.SaveChanges();
return Content("<script>alert('编辑成功!');window.location = '/admin/Users/';</script>"); }
else
{
return View(aList);
}
} /// <summary>
/// 添加数据操作
/// </summary>
/// <returns></returns>
public ActionResult UserProfilesAdd()
{
ViewBag.roleList = GetRoleSelectList();
return View();
} [HttpPost]
public ActionResult UserProfilesAdd(FormCollection collection, string[] roles)
{
if (ModelState.IsValid)
{
string userName = collection.Get("UserName");
string password = collection.Get("Password");
string email = collection.Get("Email");
string realName = collection.Get("RealName");
int state = (collection.Get("State")=="")?:;
if (db.DB_UserProfiles.SingleOrDefault(e => e.UserName == userName) == null)
{
WebSecurity.CreateUserAndAccount(userName, password);
if (roles != null)
{
foreach (var roleName in roles)
{
Roles.AddUserToRole(userName, roleName);
}
} M_UserProfile user = db.DB_UserProfiles.Single(e => e.UserName == userName);
user.Email = email;
user.State = state;
user.RealName = realName;
db.SaveChanges(); return Content("<script>alert('添加成功!');window.location = '/admin/Users/';</script>");
}
else
{ ViewBag.roleList = GetRoleSelectList();
ViewBag.MrrTip = "用户名已存在!"; }
} return View();
}
/// <summary>
/// 角色设置
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public ActionResult UserProfilesSetRole(int id)
{ var uList = db.DB_UserProfiles.Find(id);
var roleU = db.DB_UsersInRoles.Where(u => u.UserId == id).ToList();
var roleR = db.DB_Roles.ToList();
var str = new StringBuilder();
str.Append("<div class='checkboxlist'>");
foreach (var rs in db.DB_Roles)
{
str.Append("<span style='padding-left:10px;'>" + rs.RoleName + "</span>"); string strCK = "";
foreach (var ru in roleU)
{
if (ru.RoleId == rs.RoleId)
{
strCK = "checked='checked'";
}
}
str.Append("<input type='checkbox'" + strCK + " value='" + rs.RoleName + "' name='roles'/>");
}
str.Append("</div>");
ViewBag.roleList = str;
return View(uList);
} private string GetRoleSelectList()
{
var str = new StringBuilder();
str.Append("<div class='checkboxlist'>");
foreach (var role in db.DB_Roles)
{
str.Append("<span style='padding-left:10px;'>" + role.RoleName + "</span>");
str.Append("<input type='checkbox' value='" + role.RoleName + "' name='roles' />"); }
str.Append("</div>"); return str.ToString();
}
/// <summary>
/// 更改角色
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public JsonResult SetRole(string id)
{
int userId = int.Parse(id.Split(new string[] { "," }, StringSplitOptions.None)[]);
string roleName = id.Split(new string[] { "," }, StringSplitOptions.None)[]; using (MVCSystemContext db = new MVCSystemContext())
{
M_UserProfile user = db.DB_UserProfiles.Single(e => e.UserId == userId);
Roles.AddUserToRole(user.UserName, roleName);
}
JsonResult result = new JsonResult();
result.JsonRequestBehavior = JsonRequestBehavior.AllowGet;
return result;
}
/// <summary>
/// 删除角色
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public JsonResult RemoveRole(string id)
{
int userId = int.Parse(id.Split(new string[] { "," }, StringSplitOptions.None)[]);
string roleName = id.Split(new string[] { "," }, StringSplitOptions.None)[]; using (MVCSystemContext db = new MVCSystemContext())
{
M_UserProfile user = db.DB_UserProfiles.Single(e => e.UserId == userId);
Roles.RemoveUserFromRole(user.UserName, roleName);
}
JsonResult result = new JsonResult();
result.JsonRequestBehavior = JsonRequestBehavior.AllowGet;
return result;
}
/// <summary>
/// 释放已使用过且不再需要使用的组件
/// </summary>
/// <param name="disposing"></param>
protected override void Dispose(bool disposing)
{
db.Dispose();
base.Dispose(disposing);
}
}
}

RolesController.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.Mvc;
using MVCSystem.Web.Common;
using MVCSystem.Web.Filters;
using MVCSystem.Web.Models; namespace MVCSystem.Web.Areas.Admin.Controllers
{
[InitializeSimpleMembership]
public class RolesController : BaseController
{
//
// GET: /Admin/Roles/
/// <summary>
/// 数据列表
/// </summary>
/// <returns></returns>
public ActionResult Index()
{
return View();
}
public JsonResult GetList(GridPager pager)
{
var aList = db.DB_Roles.ToList();
aList = aList.OrderByDescending(a => a.RoleId).ToList();
var json = new
{
results = aList.Count,
rows = aList.Select(a => new
{
RoleID = a.RoleId,
RoleName = a.RoleName,
State = (a.State == 1) ? "启用" : "禁用",
perName = getPerName(a.RoleId),
CZ = "<a href='javascript:;' onclick='SetPermission(" + a.RoleId + ")' id='SetPermission'>权限设置</a><a href='javascript:;' onclick='RolesEdit(" + a.RoleId + ")' id='Edit'>编辑</a><a href='javascript:;' onclick='DeleteShow(" + a.RoleId + ")' id='Delete'>删除</a>" }).Skip((pager.pageIndex) * pager.limit).Take(pager.limit).ToArray()
};
return Json(json, JsonRequestBehavior.AllowGet); }
private string getPerName(int id)
{ var gg = (from a in db.DB_PermissionsInRoles
join b in db.DB_Permission
on a.PermissionId equals b.PermissionId
group new { a.RoleId, b.PermissionName, a.PermissionId } by new { a.RoleId, b.PermissionName, a.PermissionId } into dd
select new
{
RoleId = dd.Key.RoleId,
perName = dd.Key.PermissionName,
}).ToList();
var perNameStr = String.Join("、", gg.Where(a => a.RoleId == id).Select(b => b.perName).ToArray());
return perNameStr;
} /// <summary>
/// 删除数据操作
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpPost]
public JsonResult RolesDelete(int id)
{
if (id > 0)
{
var aList = db.DB_Roles.Find(id);
db.DB_Roles.Remove(aList);
db.SaveChanges();
return Json(1, JsonRequestBehavior.AllowGet);
}
else
{
return Json(0, JsonRequestBehavior.AllowGet);
}
}
/// <summary>
/// 修改角色
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public ActionResult RolesEdit(int id)
{
var rList = db.DB_Roles.Find(id);
return View(rList);
}
[HttpPost]
public ActionResult RolesEdit(int id, FormCollection collection)
{
var rList = db.DB_Roles.Find(id);
if (TryUpdateModel(rList))
{
rList.State = (collection.Get("State") == "1") ? 1 : 0;
db.SaveChanges();
return Content("<script>alert('编辑成功!');parent.location.reload();</script>"); }
else
{
return View(rList);
}
}
/// <summary>
/// 添加角色
/// </summary>
/// <returns></returns>
public ActionResult RolesAdd()
{
ViewBag.permissionList = GetPermissionSelectList();
return View();
}
[HttpPost]
public ActionResult RolesAdd(M_Roles role,FormCollection collection, string[] permissions)
{
if (ModelState.IsValid)
{
if (db.DB_Roles.SingleOrDefault(e => e.RoleName == role.RoleName) == null)
{
role.State = (collection.Get("State") == "1") ? 1 : 0;
M_Roles currentRole = db.DB_Roles.Add(role);
db.SaveChanges();
if (permissions != null)
{
foreach (var permissionId in permissions)
{
M_PermissionsInRoles pir = new M_PermissionsInRoles();
pir.RoleId = currentRole.RoleId;
pir.PermissionId = int.Parse(permissionId);
db.DB_PermissionsInRoles.Add(pir);
db.SaveChanges();
}
}
return Content("<script>alert('添加成功!');parent.location.reload();</script>");
}
else
{
ViewBag.permissionList = GetPermissionSelectList();
TempData["ErrorMessage"] = "角色名称已存在";
}
} return View(role);
}
/// <summary>
/// 获取权限列表
/// </summary>
/// <returns></returns>
private string GetPermissionSelectList()
{
var str = new StringBuilder();
str.Append("<div class='checkboxlist'>");
foreach (var role in db.DB_Permission)
{
str.Append("<span style='padding-left:10px;'>" + role.PermissionName + "</span>");
str.Append("<input type='checkbox' value='" + role.PermissionId + "' name='permissions'/>"); }
str.Append("</div>"); return str.ToString();
}
/// <summary>
/// 设置角色权限
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public ActionResult RolesSetPermission(int id)
{
var permissionsInRoles = db.DB_PermissionsInRoles.Where(r => r.RoleId == id).ToList();
var permission = db.DB_Permission.ToList();
var str = new StringBuilder();
str.Append("<div class='checkboxlist'>");
foreach (var per in permission)
{
str.Append("<span style='padding-left:10px;'>" + per.PermissionName + "</span>");
string strCK = "";
foreach (var perR in permissionsInRoles)
{
if (per.PermissionId == perR.PermissionId)
{
strCK = "checked='checked'";
}
}
str.Append("<input type='checkbox'" + strCK + " value='" + per.PermissionId + "' name='roles' />"); }
str.Append("</div>");
ViewBag.permissionList = str;
ViewBag.RoleId = id;
var rList = db.DB_Roles.Find(id);
return View(rList); }
/// <summary>
/// 更改角色权限
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public JsonResult SetPermission(string id)
{
int roleId = int.Parse(id.Split(new string[] { "," }, StringSplitOptions.None)[0]);
int permissionId = int.Parse(id.Split(new string[] { "," }, StringSplitOptions.None)[1]); using (MVCSystemContext db = new MVCSystemContext())
{
M_PermissionsInRoles pir = new M_PermissionsInRoles();
pir.RoleId = roleId;
pir.PermissionId = permissionId;
db.DB_PermissionsInRoles.Add(pir);
db.SaveChanges();
}
JsonResult result = new JsonResult();
result.JsonRequestBehavior = JsonRequestBehavior.AllowGet;
return result;
}
/// <summary>
/// 移除角色权限
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public JsonResult RemovePermission(string id)
{
int roleId = int.Parse(id.Split(new string[] { "," }, StringSplitOptions.None)[0]);
int permissionId = int.Parse(id.Split(new string[] { "," }, StringSplitOptions.None)[1]); using (MVCSystemContext db = new MVCSystemContext())
{
M_PermissionsInRoles pir = db.DB_PermissionsInRoles.Single(e => e.PermissionId == permissionId && e.RoleId == roleId);
db.DB_PermissionsInRoles.Remove(pir);
db.SaveChanges();
}
JsonResult result = new JsonResult();
result.JsonRequestBehavior = JsonRequestBehavior.AllowGet;
return result;
}
}
}

视图Users文件下的页面

Index.cshtml

@using MVCSystem.Web;
@{
ViewBag.Title = "Index";
Layout = "~/Areas/Admin/Views/Shared/_Layout_Admin.cshtml";
}
<form class="form-inline definewidth m20" action="index.html" method="get">
用户名称:
<input type="text" name="username" id="username"class="abc input-default" placeholder="" value="">&nbsp;&nbsp;
<button type="submit" class="btn btn-primary">查询</button>&nbsp;&nbsp; <a href="/Admin/Users/UserProfilesAdd/" class="btn btn-success" id="addnew">新增用户</a>
</form>
<div id="gridList" style=" width:96%;margin:10px auto;">
</div>
<div id="windDlog" class="hidden"> </div> <script type="text/javascript">
BUI.use(['bui/grid', 'bui/data'], function (Grid, Data) {
var Grid = Grid,
Store = Data.Store,
columns = [
{ title: '用户名', dataIndex: 'UserName', width: 200 },
{ title: '邮箱', dataIndex: 'UserEmail', width: 200 },
{ title: '真实姓名', dataIndex: 'RealName', width: 200 },
{ title: '状态', dataIndex: 'State', width: 100 },
{ title: '用户角色', dataIndex: 'UserRole', width: 200 },
{ title: '操作', dataIndex: 'CZ', width: 200 }
]; var store = new Store({
url: '/Admin/Users/GetList',
autoLoad: true, //自动加载数据
pageSize: 3 // 配置分页数目
}),
grid = new Grid.Grid({
render: '#gridList',
columns: columns,
loadMask: true, //加载数据时显示屏蔽层
store: store,
// 底部工具栏
bbar: {
// pagingBar:表明包含分页栏
pagingBar: true
}
}); grid.render();
}); function DeleteShow(UserId) {
BUI.use('bui/overlay',function(overlay){
BUI.Message.Show({ msg : '你确定要删除吗?',
icon : 'question',
buttons : [
{
text:'确定',
elCls : 'button button-primary',
handler : function(){
$.post("/Admin/Users/UserProfilesDelete/" + UserId + "", function (data) {
location.reload();
if (data == 1) {
BUI.Message.Show({
msg: '删除成功',
icon: 'success',
buttons: [],
autoHide: true,
autoHideDelay: 1000
}); }
else {
BUI.Message.Show({
msg: '删除失败',
icon: 'error',
buttons: [],
autoHide: true,
autoHideDelay: 1000
});
} }, "json");
}
},
{
text:'取消',
elCls : 'button',
handler : function(){
this.close();
}
} ] })
})
} function SetRole(userId){
$("#windDlog").html("<iframe width='100%' height='98%' frameborder='0'' src='/Admin/Users/UserProfilesSetRole/" + userId + "'></iframe>");
BUI.use(['bui/overlay','bui/form'],function(Overlay,Form){
var dialog = new Overlay.Dialog({
title: '角色设置',
width: 250,
height: 200,
//配置DOM容器的编号
contentId: 'windDlog',
mask: false,
buttons: [
{
text: '确定',
elCls: 'button button-primary',
handler: function () {
location.reload();
this.close();
}
}
],
});
dialog.show();
})
}
</script>

UserProfilesAdd.cshtml

@model MVCSystem.Web.Areas.Admin.Models.AM_UserProfileViewModel

@{
ViewBag.Title = "UserProfilesAdd";
Layout = "~/Areas/Admin/Views/Shared/_Layout_Admin.cshtml";
} <h2>@ViewBag.MrrTip</h2> @using (Html.BeginForm()) {
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<table class="table table-bordered table-hover definewidth m10">
<tr>
<td width="10%" class="tableleft">登录名</td>
<td> @Html.EditorFor(model => model.UserName)
@Html.ValidationMessageFor(model => model.UserName)</td>
</tr>
<tr>
<td width="10%" class="tableleft">密码</td>
<td> @Html.EditorFor(model => model.Password)
@Html.ValidationMessageFor(model => model.Password)</td>
</tr>
<tr>
<td class="tableleft">真实姓名</td>
<td> @Html.EditorFor(model => model.RealName)
@Html.ValidationMessageFor(model => model.RealName)</td>
</tr>
<tr>
<td class="tableleft">邮箱</td>
<td> @Html.EditorFor(model => model.Email)
@Html.ValidationMessageFor(model => model.Email)</td>
</tr>
<tr>
<td class="tableleft">状态</td>
<td> <span><input type="radio" name="State" value="1" checked="checked"/> 启用</span>
<span><input type="radio" name="State" value="0" /> 禁用</span> </td>
</tr>
<tr>
<td class="tableleft">角色</td>
<td>
@Html.Raw(ViewBag.roleList)
</td>
</tr> <tr>
<td class="tableleft"></td>
<td>
<button type="submit" class="btn btn-primary">保存</button>
&nbsp;&nbsp;<a href="/admin/Users/" class="btn btn-success" name="backid" id="backid">返回列表</a>
</td>
</tr>
</table> }

UserProfilesEdit.cshtml

@model MVCSystem.Web.Models.M_UserProfile

@{
ViewBag.Title = "UserProfilesEdit";
Layout = "~/Areas/Admin/Views/Shared/_Layout_Admin.cshtml";
} @using (Html.BeginForm()) {
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
@Html.HiddenFor(model => model.UserId)
<table class="table table-bordered table-hover definewidth m10">
<tr>
<td width="10%" class="tableleft">登录名</td>
<td> @Html.EditorFor(model => model.UserName)
@Html.ValidationMessageFor(model => model.UserName)</td>
</tr> <tr>
<td class="tableleft">真实姓名</td>
<td> @Html.EditorFor(model => model.RealName)
@Html.ValidationMessageFor(model => model.RealName)</td>
</tr>
<tr>
<td class="tableleft">邮箱</td>
<td> @Html.EditorFor(model => model.Email)
@Html.ValidationMessageFor(model => model.Email)</td>
</tr>
<tr>
<td class="tableleft">状态</td>
<td>
@if(Model.State==1){
<span><input type="radio" name="State" value="1" checked="checked"/> 启用</span>
<span><input type="radio" name="State" value="0" /> 禁用</span>
}
else{
<span><input type="radio" name="State" value="1"/> 启用</span>
<span><input type="radio" name="State" value="0" checked="checked"/> 禁用</span>
}
</td>
</tr> <tr>
<td class="tableleft"></td>
<td>
<button type="submit" class="button button-primary">保存</button>
&nbsp;&nbsp;<a href="/admin/Users/" class="btn btn-success" name="backid" id="backid">返回列表</a>
</td>
</tr>
</table> }

UserProfilesSetRole.cshtml

@model MVCSystem.Web.Models.M_UserProfile
@{
ViewBag.Title = "UserProfilesSetRole";
Layout = "~/Areas/Admin/Views/Shared/_Layout_Admin.cshtml";
} @using (Html.BeginForm())
{
<input type="hidden" id="User_ID" value="@Model.UserId"/>
<div class="row">
<div class="control-group span5">
<label class="control-label">角色设置:<span id="updateMessage"></span></label>
<div class="controls">
@Html.Raw(ViewBag.roleList)
</div>
</div>
</div>
}
<script type="text/javascript">
$(function () {
$(".controls input").change(function () {
var sUserId = $("#User_ID").val();
var value = sUserId + "," + $(this).val(); if ($(this).is(":checked")) { var url = "/Admin/Users/SetRole/" + value;
}
else {
url = "/Admin/Users/RemoveRole/" + value;
} var objUpdateMessage = $("#updateMessage");
$.getJSON(url, function (data) {
if (objUpdateMessage.length > 0) {
objUpdateMessage.fadeIn();
objUpdateMessage.css("color", "green");
objUpdateMessage.html("设置成功!");
objUpdateMessage.fadeOut("slow");
}
}); }); })
</script>

视图Roles文件下的页面

Index.cshtml

@using MVCSystem.Web;
@{
ViewBag.Title = "Index";
Layout = "~/Areas/Admin/Views/Shared/_Layout_Admin.cshtml";
}
<form class="form-inline definewidth m20" action="index.html" method="get">
角色名称:
<input type="text" name="username" id="username"class="abc input-default" placeholder="" value="">&nbsp;&nbsp;
<button type="submit" class="btn btn-primary">查询</button>&nbsp;&nbsp; <button type="button" onclick="RolesAdd()" class="btn btn-success" id="addnew">新增角色</button>
</form>
<div id="gridList" style=" width:96%;margin:10px auto;">
</div>
<div id="windDlog" class="hidden"> </div> <script type="text/javascript">
BUI.use(['bui/grid', 'bui/data'], function (Grid, Data) {
var Grid = Grid,
Store = Data.Store,
columns = [
{ title: '角色名称', dataIndex: 'RoleName', width: 200 },
{ title: '权限', dataIndex: 'perName', width: 200 },
{ title: '状态', dataIndex: 'State', width: 100 },
{ title: '操作', dataIndex: 'CZ', width: 200 }
]; var store = new Store({
url: '/Admin/Roles/GetList',
autoLoad: true, //自动加载数据
pageSize: 3 // 配置分页数目
}),
grid = new Grid.Grid({
render: '#gridList',
columns: columns,
loadMask: true, //加载数据时显示屏蔽层
store: store,
// 底部工具栏
bbar: {
// pagingBar:表明包含分页栏
pagingBar: true
}
}); grid.render();
}); function DeleteShow(UserId) {
BUI.use('bui/overlay',function(overlay){
BUI.Message.Show({ msg : '你确定要删除吗?',
icon : 'question',
buttons : [
{
text:'确定',
elCls : 'button button-primary',
handler : function(){
$.post("/Admin/Roles/RolesDelete/" + UserId + "", function (data) {
location.reload();
if (data == 1) {
BUI.Message.Show({
msg: '删除成功',
icon: 'success',
buttons: [],
autoHide: true,
autoHideDelay: 1000
}); }
else {
BUI.Message.Show({
msg: '删除失败',
icon: 'error',
buttons: [],
autoHide: true,
autoHideDelay: 1000
});
} }, "json");
}
},
{
text:'取消',
elCls : 'button',
handler : function(){
this.close();
}
} ] })
})
}
function RolesEdit(rolesId) {
$("#windDlog").html("<iframe width='100%' height='98%' frameborder='0'' src='/Admin/Roles/RolesEdit/" + rolesId + "'></iframe>");
BUI.use(['bui/overlay', 'bui/form'], function (Overlay, Form) {
var dialog = new Overlay.Dialog({
title: '编辑角色',
width: 300,
height: 200,
//配置DOM容器的编号
contentId: 'windDlog',
mask: false,
buttons: [],
});
dialog.show();
})
} function RolesAdd() { $("#windDlog").html("<iframe width='100%' height='98%' frameborder='0'' src='/Admin/Roles/RolesAdd/'></iframe>");
BUI.use(['bui/overlay', 'bui/form'], function (Overlay, Form) {
var dialog = new Overlay.Dialog({
title: '添加角色',
width: 500,
height: 250,
//配置DOM容器的编号
contentId: 'windDlog',
mask: false,
buttons: [],
});
dialog.show();
})
}
function SetPermission(rolesId) {
$("#windDlog").html("<iframe width='100%' height='98%' frameborder='0'' src='/Admin/Roles/RolesSetPermission/" + rolesId + "'></iframe>");
BUI.use(['bui/overlay','bui/form'],function(Overlay,Form){
var dialog = new Overlay.Dialog({
title: '权限设置',
width: 500,
height: 200,
//配置DOM容器的编号
contentId: 'windDlog',
mask: false,
buttons: [
{
text: '确定',
elCls: 'button button-primary',
handler: function () {
location.reload();
this.close();
}
}
],
});
dialog.show();
})
}
</script>

RolesAdd.cshtml

@model MVCSystem.Web.Models.M_Roles

@{
ViewBag.Title = "RolesEdit";
Layout = "~/Areas/Admin/Views/Shared/_Layout_Admin.cshtml";
} @using (Html.BeginForm()) {
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<div class="row">
<div class="control-group span6">
<label class="control-label L">角色名称:</label>
<div class="controls L">
@Html.EditorFor(model => model.RoleName)
@Html.ValidationMessageFor(model => model.RoleName)
</div>
</div>
</div>
<div class="row">
<div class="control-group span6">
<label class="control-label L">权限设置:</label>
<div class="controls L">
@Html.Raw(ViewBag.permissionList)
</div>
</div>
</div>
<div class="row">
<div class="control-group span6">
<label class="control-label L">状态:</label>
<div class="controls L">
<span><input type="radio" name="State" value="1" checked="checked"/> 启用</span>
<span><input type="radio" name="State" value="0" /> 禁用</span>
</div>
</div>
</div>
<div><button type="submit" class="btn btn-primary">保存</button></div>
}

RolesEdit.cshtml

@model MVCSystem.Web.Models.M_Roles

@{
ViewBag.Title = "RolesEdit";
Layout = "~/Areas/Admin/Views/Shared/_Layout_Admin.cshtml";
} @using (Html.BeginForm()) {
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<div class="row">
<div class="control-group span4">
<label class="control-label L">角色名称:</label>
<div class="controls L">
@Html.EditorFor(model => model.RoleName)
@Html.ValidationMessageFor(model => model.RoleName)
</div>
</div>
</div>
<div class="row">
<div class="control-group span4">
<label class="control-label L">状态:</label>
<div class="controls L">
@if(Model.State==1){
<span><input type="radio" name="State" value="1" checked="checked"/> 启用</span>
<span><input type="radio" name="State" value="0" /> 禁用</span>
}
else{
<span><input type="radio" name="State" value="1"/> 启用</span>
<span><input type="radio" name="State" value="0" checked="checked"/> 禁用</span>
}
</div>
</div>
</div>
<div><button type="submit" class="btn btn-primary">保存</button></div>
}

RolesSetPermission.cshtml

@model MVCSystem.Web.Models.M_Roles
@{
ViewBag.Title = "RolesSetPermission";
Layout = "~/Areas/Admin/Views/Shared/_Layout_Admin.cshtml";
} @using (Html.BeginForm())
{
<input type="hidden" id="RoleId" value="@Model.RoleId"/>
<div class="row">
<div class="control-group span6">
<label class="control-label">权限设置:<span id="updateMessage"></span></label>
<div class="controls">
@Html.Raw(ViewBag.permissionList)
</div>
</div>
</div>
}
<script type="text/javascript">
$(function () {
$(".controls input").change(function () {
var sUserId = $("#RoleId").val();
var value = sUserId + "," + $(this).val(); if ($(this).is(":checked")) { var url = "/Admin/Roles/SetPermission/" + value;
}
else {
url = "/Admin/Roles/RemovePermission/" + value;
} var objUpdateMessage = $("#updateMessage");
$.getJSON(url, function (data) {
if (objUpdateMessage.length > 0) {
objUpdateMessage.fadeIn();
objUpdateMessage.css("color", "green");
objUpdateMessage.html("设置成功!");
objUpdateMessage.fadeOut("slow");
}
}); }); })
</script>

最终运行效果如下

编辑用户:

新增用户:

用户角色:

编辑角色:

新增角色:

权限设置:

源码下载:http://www.yealuo.com/Sccnn/Detail?KeyValue=2f926407-f80b-4bff-a729-949a53efed7b

作者:boyzi007

出处:http://www.cnblogs.com/boyzi/

QQ:470797533

QQ交流群:364307742
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

ASP.NET MVC4.0+EF+LINQ+bui+bootstrap+网站+角色权限管理系统(3)的更多相关文章

  1. ASP.NET MVC4.0+EF+LINQ+bui+bootstrap+网站+角色权限管理系统(1)

    本系列的的角色权限管理主要采用Dotnet MVC4工程内置的权限管理模块Simplemembership实现,主要有关文件是InitializeSimpleMembershipAttribute.c ...

  2. ASP.NET MVC4.0+EF+LINQ+bui+bootstrap+网站+角色权限管理系统(2)

    创建公共分页参数类Common/GridPager.cs using System; using System.Collections.Generic; using System.Linq; usin ...

  3. ASP.NET MVC4.0+EF+LINQ+bui+bootstrap+网站+角色权限管理系统(4)

    接下来就是菜单管理了,菜单分为两部分,一部分是菜单管理,另一部分是左边的树形菜单 数据库添加菜单表Menus USE [MVCSystem] GO /****** Object: Table [dbo ...

  4. ASP.NET MVC4.0+EF+LINQ+bui+bootstrap+网站+角色权限管理系统(开篇)

    系统预览: 源码下载:http://www.yealuo.com/Home/Detail?KeyValue=2f926407-f80b-4bff-a729-949a53efed7b 创建项目,新手按步 ...

  5. ASP.NET MVC4.0+EF+LINQ+bui+网站+角色权限管理系统(6)

    快过年了,公司事情忙,好几天没有继续写博客,今天开始写账户模块系统登录,账户管理以及登录日志, 首先新建登录日志数据表: USE [MVCSystem] GO /****** Object: Tabl ...

  6. ASP.NET MVC4.0+EF+LINQ+bui+网站+角色权限管理系统(7)

    今天将使用Simplemembership进行权限控制 我们使用mvc的AuthorizeAttribute来实现对Controller and Action权限控制 看如下标为红色的代码片段: // ...

  7. ASP.NET MVC4.0+EF+LINQ+bui+网站+角色权限管理系统(5)

    我参考了bui官网,里面提供了大量的接口案例和效果,之前下载的前端框架完全不需要bootstrap,所以从这一节开始,不再使用bootstrap(当然不想改变的也可以继续使用之前的框架,不影响使用), ...

  8. ASP.NET MVC4.0+ WebAPI+EasyUI+KnockOutJS快速开发框架 通用权限管理系统

    1.基于 ASP.NET MVC4.0 + WebAPI + EasyUI + Knockout 的架构设计开发 2.采用MVC的框架模式,具有耦合性低.重用性高.生命周期成本低.可维护性高.有利软件 ...

  9. 翻译:使用 ASP.NET MVC 4, EF, Knockoutjs and Bootstrap 设计和开发站点 - 3

    原文地址:http://ddmvc4.codeplex.com/ 原文名称:Design and Develop a website using ASP.NET MVC 4, EF, Knockout ...

随机推荐

  1. mysql锁机制之表锁(三)

    顾名思义,表锁就是一锁锁一整张表,在表被锁定期间,其他事务不能对该表进行操作,必须等当前表的锁被释放后才能进行操作.表锁响应的是非索引字段,即全表扫描,全表扫描时锁定整张表,sql语句可以通过执行计划 ...

  2. Effective Modern C++:03转向现代C++

    07:在创建对象时注意区分()和{} 自C++11以来,指定初始化值的的方式包括使用小括号,等号,以及大括号: ); // initializer is in parentheses ; // ini ...

  3. 获取表单所有字段 Post

    var params = $(".layui-form").serializeArray(); var values = {}; for (x in params) { value ...

  4. 【Leetcode链表】奇偶链表(328)

    题目 给定一个单链表,把所有的奇数节点和偶数节点分别排在一起.请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性. 请尝试使用原地算法完成.你的算法的空间复杂度应为 O(1 ...

  5. RedHat6.2离线安装vncserver

    准备安装包 tigervnc-server-1.1.0-5.el6_4.1.x86_64.rpm pixman-0.32.8-1.el6.x86_64.rpm pixman-devel-0.32.8- ...

  6. day4_python之三元表达式、列表推导式、生成器表达式

    一.三元表达式 name=input('姓名>>: ') res='SB' if name == 'alex' else 'NB' print(res) 二.列表解析 l = [] for ...

  7. 20.libgdx,stage中默认相机的使用

    主要思路: 通过查资料得知,stage中的默认封装的相机为OrthographicCamera,要操纵该相机,直接把他转化为OrthographicCamera即可使用 但是这会导致一个问题,即原本固 ...

  8. MAYA安装失败怎样卸载重新安装MAYA,解决MAYA安装失败的方法总结

    技术帖:MAYA没有按照正确方式卸载,导致MAYA安装失败.楼主也查过网上关于如何解决MAYA安装失败的一些文章,是说删除几个MAYA文件和MAYA软件注册表就可以解决MAYA安装失败的问题,实际的情 ...

  9. 5G时代-计算机和网络的又一个春天

    预言 5G时代的到来计算机和网络即将再次变成热门,计算机和网络的前途将不可限量,就经济学思想来说一定是最具有经济价值的技术,计算机和网络将蓬勃发展,迅速膨胀,经济价值变得极高.将成为科技和智能生活的最 ...

  10. NOIP2007 树网的核 && [BZOJ2282][Sdoi2011]消防

    NOIP2007 树网的核 树的直径的最长性是一个很有用的概念,可能对一些题都帮助. 树的直径给定一棵树,树中每条边都有一个权值,树中两点之间的距离定义为连接两点的路径边权之和.树中最远的两个节点之间 ...