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中的链接
View Code
运行效果如下:
作者:boyzi007
出处:http://www.cnblogs.com/boyzi/
QQ:470797533
QQ交流群:364307742
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
下载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
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
相关文章推荐
- ASP.NET学习路线图(入门)
- Asp.Net 文件加解密
- Asp.Net 启用全局IE兼容模式
- 提高 ASP.NET Web 应用性能
- ASP
- 【转】 (C#)利用Aspose.Cells组件导入导出excel文件
- 详解 ASP.NET异步
- 提高 ASP.NET Web 应用性能的 24 种方法和技巧
- ASP.Net基础知识积累
- asp.net网站500.19错误的解决办法
- ASP.NET性能优化
- asp.net mvc多条件+分页查询解决方案
- 1.Getting Started with ASP.NET MVC 5
- ASP.NET 2.0构建动态导航的Web应用程序(TreeView和Menu ) (海东的技术资料)
- [翻译]使用ASP.NET AJAX让GridView的数据行显示提示框(ToolTip)
- ASP.Net新手项目经验谈
- ASP.NET AJAX官方资源大量更新
- 提高 ASP.NET Web 应用性能的 24 种方法和技巧
- RaspberryPi和Arduino温室恒温改进
- WebUploader asp.net 多文件上传