手机版

ASP.NET MVC 5网站开发中用户角色的后台管理1 (7)

时间:2021-09-07 来源:互联网 编辑:宝哥软件园 浏览:

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

一、业务逻辑层

1.榜样

尼尼微。核心[右键]-添加类,并输入类名角色。

参考系统。组件模型。dataannotations命名空间

使用系统。组件模型。数据注释;命名空间nine sky . core {///summary////role////summary公共类角色{[key]public int roleid { get;设置;}///summary///name////summary[必选(errormessage='必须输入{0}')] [stringlength (20,minimumlength=2,errormessage=' {0}长度为{2}-{1}个字符')] [display(。设置;}///summary///Description////summary[string length(1000,errormessage=' {0} '必须少于{1}个字符')] [Display(Name=' description')]公共字符串Description { get设置;} }}2.添加表映射

打开尼尼微。并添加角色表映射

3.迁移数据

1)启用数据迁移

在工具栏上-工具-NuGet包管理器-包管理器控制台。

输入命令“启用-迁移”以启用尼尼微的数据迁移。核心.

打开nine sky . core/migrations/configuration . cs文件

设置automaticmigrationsensabled=false;更改为automaticmigratingenabled=true;启用自动迁移。

2)更新数据表

运行命令更新-数据库。错误:数据库中已经有一个名为“administrators”的对象。

这是因为数据迁移是在教师成为管理员表之后启用的。更新表时,视图未能创建管理员表。

打开服务器资源管理器,如图,选择管理员[右键]-删除。

成功删除后,再次运行更新-数据库,执行成功。

因为管理员帐户是在刚才删除表时被删除的,所以请记住打开管理员表并添加一个管理员帐户。请记住输入jzae 727k 08 kaomkgoagzww/xvqgr/pkegimkjrcbji=这是123456的加密字符串。

4.角色管理

尼尼微。核心[右键]-添加类,输入类名RoleManager,该类从BaseManagerRole继承

使用系统;使用系统。集合。通用;使用系统。Linq使用系统。文字;使用系统。线程化。任务;namespace ninesky . core {///summary////角色管理////summary public class角色管理器: basemanager角色{}} II。表示层

尼尼微。网络/区域/控制/控制器[右击]-添加-控制器。选择MVC5控制器空白,并输入控制器名称角色控制器。

引入名称空间Ninesky。核心进入控制器;

添加变量私有角色管理器角色管理器=新角色管理器();

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

1.消息提示

操作时往往需要提示操作的成功、失败和错误,所以专门做了一个提示模型类提示。

1)、添加类

尼尼微。网页/模型[右击]-添加类输入类名提示

复制代码如下:使用系统。收藏品。通用;namespace ninesky . web . models {///summary///prompt///summary public class prompt {///summary///title////summary public string title { get;设置;}///summary///message////summary公共字符串消息{ get设置;}///summary////按钮组////summary public liststring按钮{ get设置;} }}

2.将类的命名空间引入控制器

尼尼微命名空间。角色控制器中引用了网络模型。

3.添加视图

右键单击-添加-在尼尼微查看。网页/区域/控件/视图/共享

@模型尼尼微。网页。模型。提示@{视图包。标题=模型。标题;}@section SideNav{@Html .partial(' SideNavPartialView ')} ol class='面包屑' lispan class=' glyphicon glyphicon-home '/span @ Html .ActionLink('首页,' Index ',' Home ')/Li Li class='active'@Model.Title/li/oldiv class=' panel panel-default ' div class=' panel-heading ' div ' class='panel-title'@Model.Title/div/div div class=' panel-body ' p @ Html .原始(模型。消息)/p @if(型号。纽扣!=空模型。按钮。计数0) { p @foreach(模型中的变量项。按钮){ @Html .原始(项目')} /p } /div/div2、管理员列表

1)、返回列表方法(Json方式)

在控制中添加方法ListJson(),返回类型JsonResoult

///摘要///列表【Json】////summary///returns/returns public Json result listJson(){ return Json(RoleManager .find list());}2、添加角色首页视图

在索引()方法【右键】-添加视图

@{ ViewBag .Title='角色管理;}@section SideNav{@Html .partial(' SideNavPartialView ')} ol class='面包屑' lispan class=' glyphicon glyphicon-home '/span @ Html .ActionLink('首页、“索引”、“主页”)/li li@Html .ActionLink('用户管理,'索引','用户')/li li class='active'@Html .ActionLink('角色管理,' Index ',' Role ')/Li/oltable id=' admin grid '/table @ section style { @ style .呈现(' ~/内容/引导')} @节脚本{ @脚本渲染(' ~/bundle/jqueryval ')@脚本.渲染(~/bundle/bootstrap lugin)脚本类型='text/javascript' $(文档)。就绪(函数(){ //表格var $ table=$(" # admin grid ");$ table。bootstraptable({ show refresh : true,showColumns: true,showFooter: true,method: 'post ',url: '@Url .操作(' ListJson ')',列: [ { title: 'ID ',字段: 'RoleID' },{ title: '名称,字段:“名称”,格式器:函数(值、行、索引){ return ' a href=' @ Url .操作("修改"、"角色")/"行角色标识' ' '值/a' } },{ title: '说明,field: 'Description' },{ title: '操作,field: 'RoleID ',formatter:函数(值){ return ' a class=' BTN BTN-sm BTN-danger '数据-操作='删除角色'数据-值='值' '删除/a' } } ],onLoadSuccess:函数(){ //删除按钮$(' a[数据操作='删除角色']').单击(function () { var id=$(this)).attr('数据值');' BootstrapDialog.confirm('你确定要删除$(这个)。父项()。父项()。查找(' td ').等式(1)。' text()'吗?函数(结果){ if(结果){ $。帖子(' @ Url .操作(' DeleteJson ',' Role ',{ id: id },函数(数据){ if(数据代码==1){ bootstrapdialog。显示({消息: '删除角色成功,按钮: [{ icon : ' glyphicon-ok ',标签: '确定,操作:函数(dialogItself){ $ table。bootstraptable(' refresh ');dialogitself。close();} }] });} else BootstrapDialog.alert(数据。消息);},' JSON ');} });});//删除按钮结束} });//表格结束});/script}3、导航视图

导航视图显示在视图的左侧,对该控制器下的功能进行导航

尼尼微。网页/区域/控件/视图/角色【右键】-添加-视图

div class=' panel panel-default ' div class=' panel-heading ' div class=' panel-title ' span class=' glyphicon glyphicon-user '/span用户管理/div/div class=' panel-body ' div class=' list-group ' div class=' list-group-item ' span class=' glyphicon glyphicon-plus '/span @ Html .ActionLink('角色添加,' Add ',' Role ')/div class=' list-group-item ' span class=' glyphicon glyphicon-list '/span @ Html .ActionLink('角色管理、"索引"、"角色"/div /div/div4、添加角色

1)、添加方法

在控制器中添加增加方法

复制代码代码如下:///summary ///添加////summary////returns/returns public action result Add(){ return View();}

2)、添加视图

在方法上右键添加视图

@模型尼尼微。核心。角色@{视图包标题='添加角色;}@section SideNav{@Html .partial(' SideNavPartialView ')} ol class='面包屑' lispan class=' glyphicon glyphicon-home '/span @ Html .ActionLink('首页、“索引”、“主页”)/li li@Html .ActionLink('用户管理、"索引"、"用户"/li li@Html .ActionLink('角色管理、"索引"、"角色”/li li类="活动"添加角色/Li/ol @使用(Html .begin inform()){ @ Html .antiforyToken()div class=' form-horizontal ' @ Html .ValidationSummary(true,",new { @ class=' text-danger ' })div class=' form-group ' @ Html .标签(型号=型号.名称,HTMl Attributes s 3360 new { @ class=' control-label col-MD-2 ' })div class=' col-MD-10 ' @ Html .编辑(模型=模型.名称,新的{ HTMl Attributes=new { @ class=' form-control ' } })@ Html .ValidationMessageFor(model=model .名称',new { @ class=' text-danger ' })/div/div class=' form-group ' @ Html .标签(型号=型号.描述,HTMl属性3360 new { @ class=' control-label col-MD-2 ' })div class=' col-MD-10 ' @ Html .编辑(模型=模型.描述,new { HTMl Attributes=new { @ class=' form-control ' } })@ Html .ValidationMessageFor(model=model .描述',new { @ class=' text-danger ' })/div/div class=' form-group ' div class=' col-MD-offset-2 col-MD-10 '输入类型='submit '值='保存=' BTNBTN-默认'/div/div/div } @节脚本{ @脚本.render(' ~/bundle/jqueryval ')} 3),添加提交数据的接收处理方法

在控制器中添加增加方法的邮政方法

[httpset][validateantforgretoken]公共操作结果添加(角色角色){ if (ModelState .IsValid) { if (roleManager .添加(角色)。代码==1) {返回视图('提示,新提示(){标题='添加角色成功,消息='你已成功添加了角色【'角色. name '】,button=new ListString(){ ' a href=\ ' URl .操作('索引','角色')' \ '类=\ ' BTNBTN-默认值\ '角色管理/a ',' a href=\ ' ' Url .操作('添加','角色')' \ '类=\ ' BTNBTN-默认值\ '继续添加/a ' } });} }返回视图(角色);}5、管理员资料修改

1)、添加方法

在控制器中添加修改方法。

///摘要///修改////summary////param name=' id ' RoleID/param///returns/returns public action result Modify(int id){ var _ role=Rolemanager .find(id);如果(_角色==null)返回视图(“提示”,新的提示(){ Title='错误,消息='标识为【‘id’】的角色不存在,button=new ListString(){ ' a href=\ ' ' URl .操作('索引','角色')' \ '类=\ ' BTNBTN-默认值\ '角色管理/a ' } });返回视图(_角色);}2)、添加视图

在方法中右键添加视图

代码如下:

@模型尼尼微。核心。角色@{视图包。标题=模型。名称;}@section SideNav{@Html .partial(' SideNavPartialView ')} ol class='面包屑' lispan class=' glyphicon glyphicon-home '/span @ Html .ActionLink('首页、“索引”、“主页”)/li li@Html .ActionLink('用户管理、"索引"、"用户"/li li@Html .ActionLink('角色管理、"索引"、"角色”/li li类="活动"修改/Li/ol @使用(Html .begin inform()){ @ Html .antiforyToken()div class=' form-horizontal ' @ Html .ValidationSummary(true ' ',new { @ class=' text-danger ' })@ Html .HiddenFor(model=model .RoleID)div class=' form-group ' @ Html .标签(型号=型号.名称,HTMl Attributes s 3360 new { @ class=' control-label col-MD-2 ' })div class=' col-MD-10 ' @ Html .编辑(模型=模型.名称,新的{ HTMl Attributes=new { @ class=' form-control ' } })@ Html .ValidationMessageFor(model=model .名称',new { @ class=' text-danger ' })/div/div class=' form-group ' @ Html .标签(型号=型号.描述,HTMl属性3360 new { @ class=' control-label col-MD-2 ' })div class=' col-MD-10 ' @ Html .编辑(模型=模型.描述,new { HTMl Attributes=new { @ class=' form-control ' } })@ Html .ValidationMessageFor(model=model .描述',new { @ class=' text-danger ' })/div/div class=' form-group ' div class=' col-MD-offset-2 col-MD-10 '输入类型='submit '值='保存=' BTNBTN-默认'/div/div/div } @节脚本{ @脚本.render(' ~/bundle/jqueryval ')} 3),添加提交数据的接收处理方法

在控制器中添加邮政方式的提交处理方法修改方法。

[httpset][validateantforgretoken]公共操作结果修改(角色角色){ if (ModelState .IsValid) { var _resp=roleManager .更新(角色);if (_resp .代码==1)返回视图('提示,新提示(){标题='修改角色成功,消息='你已成功修改了角色【'角色. name '】,button=new ListString(){ ' a href=\ ' URl .操作('索引','角色')' \ '类=\ ' BTNBTN-默认值\ '角色管理/a ',' a href=\ ' ' Url .操作('修改','角色,新{ id=角色)' \ ' class=\ ' BTNBTN-默认\ '查看/a ',' a href=\ ' ' Url .操作('添加','角色')' \ '类=\ ' BTNBTN-默认值\ '添加/a ' } });否则返回视图('提示,新的提示(){标题='修改角色失败,消息='失败原因:' _resp .消息,Buttons=new ListString(){ ' a href=\ ' ' URl .操作('索引','角色')' \ '类=\ ' BTNBTN-默认值\ '角色管理/a ',' a href=\ ' ' Url .操作('修改','角色,新{ id=角色)' \ ' class=\ ' BTNBTN-默认\ '返回/a ' } });}否则返回视图(角色);}6、删除角色

在控制器中添加修改方法。

///摘要///删除【Json】////summary////param name=' id ' RoleID/param///returns/returns[HttpSet]public Json result deleteJson(int id){ return Json(Rolemanager .删除(id));}角色功能完成,按F5浏览器中预览效果

-

代码见:https://九天。codeplex。com/源代码管理/最新

代码下载:https://ninesky.codeplex.com点击源代码点击[计]下载下载源文件。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

版权声明:ASP.NET MVC 5网站开发中用户角色的后台管理1 (7)是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。