冯 海

一个程序新人菜鸟的日记,希望大家多多关照。QQ:32316131

2018教程之mvc+ef之五:Identity角色管理之角色列表和删除角色修改角色

角色列表的功能

 一、先建个模型

在ViewModels下新RolesViewModel.cs

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;

namespace MYtest2018.ViewModels
{
	public class RolesViewModel
	{
		public string Id { get; set; }
		[Display(Name = "角色名")]
		public string Name { get; set; }


	}
}

  二、后台

	/// 所有角色名称
		/// </summary>
		/// <returns></returns>
		[HttpGet]
		//[Authorize(Roles = "Super")]
		public ActionResult ListRoles()
		{
			var roleList = RoleManager.Roles.ToList();
			var roles = from m in roleList select new RolesViewModel {
				Id = m.Id,
				Name=m.Name
			};
			
			return View(roles);
		}

 三、前台

注意前台的后面按钮的可能不正确。

  @model IEnumerable<MYtest2018.ViewModels.RolesViewModel>
@{
    ViewBag.Title = "ListRoles";
    Layout = "~/Views/Shared/_Layoutadmin.cshtml";
}

<div class="wrapper wrapper-content">
	<div class="ibox float-e-margins">
		<div class="ibox-title">
			<h2>角色管理</h2>
			<div class="ibox-tools">
				<a class="collapse-link">
					<i class="fa fa-chevron-up"></i>
				</a>
			</div>
		</div>

		<div class="ibox-content">
			<div class="form-group">
				 @foreach (var role in Model)
				 {

					<div class="row">
						<div class="col-md-2 RoleList"><span class="glyphicon glyphicon-user" aria-hidden="true"></span>   @Html.DisplayFor(m => role.Name)  </div>

						<div class="col-md-8 usertitle">
 
							<a class="btn btn-xs btn-white" href="~/Account/EditRole/@role.Id"><i class="fa fa-bank"></i> 编辑 </a>
							<a class="btn btn-xs btn-white" href="~/Account/RemoveRole/@role.Id" onclick="return confirm('你确认删除吗?')"><i class="fa fa-bank"></i> 删除 </a>
							<a class="btn btn-xs btn-white" href="~/Account/UserToRole/@role.Id")"><i class="fa fa-bank"></i> 添加用户 </a>
							<a class="btn btn-xs btn-white" href="~/Account/ViewRoleUser/@role.Id" )"><i class="fa fa-bank"></i> 查看用户 </a>
							<a class="btn btn-xs btn-white" href="~/Account/ViewRoleUser/@role.Id" )"><i class="fa fa-bank"></i> 查看用户 </a>
 

						</div>
					</div>
					<hr />

				 }



			</div>

			 
		</div>
	</div>
















	

 

 

 

 四,删除角色

/// <summary>
		/// 删除用户
		/// </summary>
		/// <param name="disposing"></param>
		// POST: Menus/Delete/5
		[HttpGet]
		 
		//[Authorize(Roles = "Super")]
		//[ValidateAntiForgeryToken]
		public async Task<ActionResult> RemoveRole(string id)
		{
			if (string.IsNullOrEmpty(id))
			{
				return new HttpStatusCodeResult(System.Net.HttpStatusCode.BadRequest);
			}
			var role = RoleManager.FindById(id);
			if (role == null)
			{
				return HttpNotFound();
			}
			var result = await RoleManager.DeleteAsync(role);
			if (!result.Succeeded)
			{
				AddErrors(result);
			}
			return RedirectToAction("ListRoles");
 
		}

  五、修改角色

1.后台

	/// <summary>
		/// 编辑角色
		/// </summary>
		/// <returns></returns>
		[HttpGet]
		//[Authorize(Roles = "Super")]
		public ActionResult EditRole(string id)
		{
			if (string.IsNullOrEmpty(id))
			{
				return new HttpStatusCodeResult(System.Net.HttpStatusCode.BadRequest);
			}
			IdentityRole role = RoleManager.FindById(id);
			if (role == null)
			{
				return HttpNotFound();
			}
			var editModel = new RolesViewModel()
			{
				Name = role.Name
			};
			return View(editModel);
		}

		/// <summary>
		/// 编辑角色
		/// </summary>
		/// <param name="id"></param>
		/// <param name="model"></param>
		/// <returns></returns>
		[HttpPost]
		//[Authorize(Roles = "Super")]
		[ValidateAntiForgeryToken]
		public async Task<ActionResult> EditRole(string id, RolesViewModel model)
		{
			if (ModelState.IsValid && !string.IsNullOrEmpty(id))
			{
				var role = RoleManager.FindById(id);
				role.Name = model.Name;
				var result = await RoleManager.UpdateAsync(role);
				if (result.Succeeded)
				{
					return RedirectToAction("ListRoles");
				}
				AddErrors(result);
			}
			return View(model);
		}

  

  前台

@model MYtest2018.ViewModels.RolesViewModel
@{
    ViewBag.Title = "EditRole";
    Layout = "~/Views/Shared/_Layoutadmin.cshtml";
}



<div class="wrapper wrapper-content">
	<div class="ibox float-e-margins">
		<div class="ibox-title">
			<h2>修改角色名称 <a class="btn btn-primary btn-sm" href="/Account/ListRoles">返回</a></h2>
			<div class="ibox-tools">
				<a class="collapse-link">
					<i class="fa fa-chevron-up"></i>
				</a>
			</div>
		</div>

		<div class="ibox-content">
			<div class="form-group">
			 
				@using (Html.BeginForm("EditRole", "Account", FormMethod.Post, new { @class = "form-horizontal", role = "form" }))
				{
					@Html.AntiForgeryToken()

					@Html.ValidationSummary("", new { @class = "text-danger" })
					<div class="form-group">
						@Html.LabelFor(m => m.Name, new { @class = "col-md-2 control-label" })
						<div class="col-md-10">
							@Html.TextBoxFor(m => m.Name, new { @class = "form-control" })
						</div>
					</div>
					<div class="form-group">
						<div class="col-md-offset-2 col-md-10">
							<input type="submit" class="btn btn-default" value="提交" />
						</div>
					</div>
				}



			</div>


		</div>
	</div>

</div>


 




@section Scripts {
	@Scripts.Render("~/bundles/jqueryval")
}

  

 七,效果

 

 

 

posted @ 2018-08-30 23:31  秋天来了哟  阅读(484)  评论(0)    收藏  举报
认识就是缘份,愿天下人都快乐!
QQ: 32316131
Email: 32316131@qq.com