ASP.NET MVC5网站开发之用户角色的后台管理1(七)

角色是网站中都有的一个功能,用来区分用户的类型、划分用户的权限,这次实现角色列表浏览、角色添加、角色修改和角色删除。

一、业务逻辑层

1、角色模型

Ninesky.Core【右键】->添加->类,输入类名Role。

引用System.ComponentModel.DataAnnotations命名空间

using System.ComponentModel.DataAnnotations; namespace Ninesky.Core { /// <summary> /// 角色 /// </summary> public class Role { [Key] public int RoleID { get; set; } /// <summary> /// 名称 /// </summary> [Required(ErrorMessage ="必须输入{0}")] [StringLength(20,MinimumLength =2, ErrorMessage ="{0}长度为{2}-{1}个字符")] [Display(Name ="名称")] public string Name { get; set; } /// <summary> /// 说明 /// </summary> [StringLength(1000, ErrorMessage = "{0}必须少于{1}个字符")] [Display(Name = "说明")] public string Description { get; set; } } }

2、添加表映射

打开Ninesky.Core/NineskyContext.cs,添加Role表映射

ASP.NET MVC5网站开发之用户角色的后台管理1(七)

3、迁移数据

1)、启用数据迁移

ASP.NET MVC5网站开发之用户角色的后台管理1(七)

在【工具栏】->【工具】->NuGet包管理器->程序包管理器控制台。

ASP.NET MVC5网站开发之用户角色的后台管理1(七)

输入命令 Enable-Migrations 回车,为Ninesk.Core启用数据迁移。

打开Ninesky.Core/Migrations/Configuration.cs文件

ASP.NET MVC5网站开发之用户角色的后台管理1(七)

将 AutomaticMigrationsEnabled = false;改为 AutomaticMigrationsEnabled = ture;来启用自动迁移。

ASP.NET MVC5网站开发之用户角色的后台管理1(七)

2)、更新数据表

运行命令Update-Database。提示错误:There is already an object named 'Administrators' in the database.

这是因为先生成了Administrators表后启用的数据迁移。在更新表的时候视图创建Administrators表失败。

ASP.NET MVC5网站开发之用户角色的后台管理1(七)

打开服务器资源管理器,如图选择Administrators【右键】->删除。

ASP.NET MVC5网站开发之用户角色的后台管理1(七)

删除成功后再次运行Update-Database,执行成功。

因为刚才删除表的时候把管理员账号也删掉了,记得打开Administrators表添加一个管理员账号,记得密码可以输入jZae727K08KaOmKSgOaGzww/XVqGr/PKEgIMkjrcbJI= 这是123456加密后的字符串。

4、角色管理

Ninesky.Core【右键】->添加->类,输入类名RoleManager,类继承自BaseManager<Role>

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Ninesky.Core { /// <summary> /// 角色管理 /// </summary> public class RoleManager:BaseManager<Role> { } }  

二、展示层

Ninesky.Web/Areas/Control/Controllers【右键】->添加->控制器。选择 MVC5 控制器 – 空, 输入控制器名称RoleController。

在控制器中引入命名空间Ninesky.Core;

添加变量private RoleManager roleManager = new RoleManager();

为控制器添加身份验证[AdminAuthorize]

1、消息提示

在进行操作的时候经常会需要对操作成功、失败、发生错误进行提示,所以专门做一个提示的模型类Prompt。

1)、添加类

Ninesky.Web/Models【右键】->添加->类  输入类名Prompt

复制代码 代码如下:

using System.Collections.Generic;namespace Ninesky.Web.Models{ /// <summary> /// 提示 /// </summary> public class Prompt { /// <summary> /// 标题 /// </summary> public string Title { get; set; } /// <summary> /// 消息 /// </summary> public string Message { get; set; } /// <summary> /// 按钮组 /// </summary> public List<string> Buttons { get; set; } }}

2、在控制器中引入类的命名空间

在Rolecontroller中引用命名空间Ninesky.Web.Models。

3、添加视图

在Ninesky.Web/Areas/Control/Views/Shared【右键】->添加->视图

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wjyfwp.html