您的位置:首页 > 编程语言 > ASP

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

2016-01-25 15:29 561 查看
我参考了bui官网,里面提供了大量的接口案例和效果,之前下载的前端框架完全不需要bootstrap,所以从这一节开始,不再使用bootstrap(当然不想改变的也可以继续使用之前的框架,不影响使用),我会把现在改变的样式和js的Content文件共享出来:

下载Content替换就行:http://pan.baidu.com/s/1eQWsOIQ,密码:5fch

然后改变_Layout_Admin.cshtml中的链接

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, string searchString)
{
var aList = from w in db.DB_UserProfiles select w;
if (!string.IsNullOrEmpty(searchString))
{
aList = aList.Where(w => w.UserName.Contains(searchString));

}
var json = new
{
results = aList.ToList().Count,
rows = aList.ToList().Select(a => new
{
UserId = a.UserId,
UserName = a.UserName,
UserEmail = a.Email,
RealName = a.RealName,
State = (a.State==1)?"启用":"禁用",
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).OrderByDescending(a => a.UserId).ToList().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 > 0)
{
var aList = db.DB_UserProfiles.Find(id);
db.DB_UserProfiles.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 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")=="1")?1:0;
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")=="1")?1:0;
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)[0]);
string roleName = id.Split(new string[] { "," }, StringSplitOptions.None)[1];

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)[0]);
string roleName = id.Split(new string[] { "," }, StringSplitOptions.None)[1];

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);
}
}
}


View Code
运行效果如下:



作者:boyzi007

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

QQ:470797533

QQ交流群:364307742
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: