2018教程之mvc+ef之四:搭建admin管理实现用户管理1
inspina已正常使用了,下面开始我们的后台管理吧。
当然先明彷管理了,为了方便,我们也新建一个admin控制器进行用户、角色等的管理。
一、新建Admin的控制器。
1.选择空的控制器。

2.名字改为AdminController
点确定。
3.创建index的视图,选择admin布局。

二、更改左侧管理菜单_Navigation.cshtml
<nav class="navbar-default navbar-static-side" role="navigation">
<div class="sidebar-collapse">
<ul class="nav" id="side-menu">
<li class="nav-header">
<div class="dropdown profile-element">
<a data-toggle="dropdown" class="dropdown-toggle" href="#">
<span class="clear">
<span class="block m-t-xs">
<strong class="font-bold">Example user</strong>
</span> <span class="text-muted text-xs block">Example menu <b class="caret"></b></span>
</span>
</a>
<ul class="dropdown-menu animated fadeInRight m-t-xs">
<li><a href="#">Logout</a></li>
</ul>
</div>
<div class="logo-element">
IN+
</div>
</li>
<li class="@Html.IsSelected(action: "Index")">
<a href="@Url.Action("Index", "Admin")"><i class="fa fa-laptop"></i> <span class="nav-label">管理首页</span> </a>
</li>
<li class="@Html.IsSelected(controller: "Account")">
<a href="@Url.Action("ListUsers", "Account")"><i class="fa fa-th-large"></i> <span class="nav-label" data-i18n="nav.dashboard">用户管理</span> <span class="fa arrow"></span></a>
<ul class="nav nav-second-level collapse @Html.IsSelected(controller: "Dashboards", cssClass: "in")">
<li class="@Html.IsSelected(action: "ListUsers")"><a href="@Url.Action("ListUsers", "Account")">用户列表</a></li>
<li class="@Html.IsSelected(action: "Register")"><a href="@Url.Action("Register", "Account")">新建用户</a></li>
</ul>
</li>
<li>
<a href="#"><i class="fa fa-sitemap"></i> <span class="nav-label" data-i18n="nav.menulevels">部室管理 </span><span class="fa arrow"></span></a>
<ul class="nav nav-second-level">
<li><a href="#">部门列表</a></li>
<li>
<a href="#">新建部门</a>
</li>
</ul>
</li>
<li class="@Html.IsSelected(controller: "UIElements")">
<a href="#"><i class="fa fa-flask"></i> <span class="nav-label" data-i18n="nav.uielements">角色管理</span><span class="fa arrow"></span></a>
<ul class="nav nav-second-level collapse @Html.IsSelected(controller: "UIElements", cssClass: "in")">
<li class="@Html.IsSelected(action: "Typography")"><a href="@Url.Action("Typography", "UIElements")">Typography</a></li>
<li class="@Html.IsSelected(action: "Icons")"><a href="@Url.Action("Icons", "UIElements")">Icons</a></li>
<li class="@Html.IsSelected(action: "DraggablePanels")"><a href="@Url.Action("DraggablePanels", "UIElements")">Draggable Panels</a></li>
<li class="@Html.IsSelected(action: "ResizeablePanels")"><a href="@Url.Action("ResizeablePanels", "UIElements")">Resizeable Panels</a></li>
<li class="@Html.IsSelected(action: "Buttons")"><a href="@Url.Action("Buttons", "UIElements")">Buttons</a></li>
<li class="@Html.IsSelected(action: "Video")"><a href="@Url.Action("Video", "UIElements")">Video</a></li>
<li class="@Html.IsSelected(action: "TablesPanels")"><a href="@Url.Action("TablesPanels", "UIElements")">Panels</a></li>
<li class="@Html.IsSelected(action: "Tabs")"><a href="@Url.Action("Tabs", "UIElements")">Tabs</a></li>
<li class="@Html.IsSelected(action: "NotificationsTooltips")"><a href="@Url.Action("NotificationsTooltips", "UIElements")">Notifications & Tooltips</a></li>
<li class="@Html.IsSelected(action: "HelperClasses")"><a href="@Url.Action("HelperClasses", "UIElements")">Helper css classes</a></li>
<li class="@Html.IsSelected(action: "BadgesLabelsProgress")"><a href="@Url.Action("BadgesLabelsProgress", "UIElements")">Badges, Labels, Progress</a></li>
</ul>
</li>
<li class="@Html.IsSelected(controller: "Graphs")">
<a href="#"><i class="fa fa-bar-chart-o"></i> <span class="nav-label" data-i18n="nav.graphs">菜单管理</span><span class="fa arrow"></span></a>
<ul class="nav nav-second-level collapse @Html.IsSelected(controller: "Graphs", cssClass: "in")">
<li class="@Html.IsSelected(action: "Flot")"><a href="@Url.Action("Flot", "Graphs")">Flot Charts</a></li>
<li class="@Html.IsSelected(action: "Morris")"><a href="@Url.Action("Morris", "Graphs")">Morris.js Charts</a></li>
<li class="@Html.IsSelected(action: "Rickshaw")"><a href="@Url.Action("Rickshaw", "Graphs")">Rickshaw Charts</a></li>
<li class="@Html.IsSelected(action: "Chartjs")"><a href="@Url.Action("Chartjs", "Graphs")">Chart.js</a></li>
<li class="@Html.IsSelected(action: "Chartist")"><a href="@Url.Action("Chartist", "Graphs")">Chartist</a></li>
<li class="@Html.IsSelected(action: "C3charts")"><a href="@Url.Action("C3charts", "Graphs")">c3 charts</a></li>
<li class="@Html.IsSelected(action: "Peity")"><a href="@Url.Action("Peity", "Graphs")">Peity Charts</a></li>
<li class="@Html.IsSelected(action: "Sparkline")"><a href="@Url.Action("Sparkline", "Graphs")">Sparkline Charts</a></li>
</ul>
</li>
<li class="@Html.IsSelected(controller: "Forms")">
<a href="#"><i class="fa fa-edit"></i> <span class="nav-label" data-i18n="nav.forms">系统操作</span><span class="fa arrow"></span></a>
<ul class="nav nav-second-level collapse @Html.IsSelected(controller: "Forms", cssClass: "in")">
<li class="@Html.IsSelected(action: "BasicFroms")"><a href="@Url.Action("BasicFroms", "Forms")">Basic form</a></li>
<li class="@Html.IsSelected(action: "Advanced")"><a href="@Url.Action("Advanced", "Forms")">Advanced Plugins</a></li>
<li class="@Html.IsSelected(action: "Wizard")"><a href="@Url.Action("Wizard", "Forms")">Wizard</a></li>
<li class="@Html.IsSelected(action: "FileUpload")"><a href="@Url.Action("FileUpload", "Forms")">File Upload</a></li>
<li class="@Html.IsSelected(action: "TextEditor")"><a href="@Url.Action("TextEditor", "Forms")">Text Editor</a></li>
<li class="@Html.IsSelected(action: "Autocomplete")"><a href="@Url.Action("Autocomplete", "Forms")">Autocomplete</a></li>
<li class="@Html.IsSelected(action: "Markdown")"><a href="@Url.Action("Markdown", "Forms")">Markdown</a></li>
</ul>
</li>
<li class="@Html.IsSelected(controller: "Tables")">
<a href="#"><i class="fa fa-table"></i> <span class="nav-label" data-i18n="nav.tables">内容管理</span><span class="fa arrow"></span></a>
<ul class="nav nav-second-level collapse @Html.IsSelected(controller: "Tables", cssClass: "in")">
<li class="@Html.IsSelected(action: "StaticTables")"><a href="@Url.Action("StaticTables", "Tables")">Static Tables</a></li>
<li class="@Html.IsSelected(action: "DataTables")"><a href="@Url.Action("DataTables", "Tables")">Data Tables</a></li>
<li class="@Html.IsSelected(action: "FooTables")"><a href="@Url.Action("FooTables", "Tables")">Foo Table</a></li>
<li class="@Html.IsSelected(action: "jqGrid")"><a href="@Url.Action("jqGrid", "Tables")">jqGrid</a></li>
</ul>
</li>
<li class="@Html.IsSelected(action: "方")">
<a href="@Url.Action("2222", "Account")"><i class="fa fa-desktop"></i> <span class="nav-label">Minor page</span></a>
</li>
</ul>
</div>
</nav>
刷新效果图

三、用户管理
1.新建用户
将Account/Register 方法,改为admin布局页面即可。
2.用户管理
编写Account/ListUsers方法
[AllowAnonymous]
[HttpGet]
public ActionResult ListUsers()
{
var user = UserManager.Users.ToList();
return View(user);
}
这个
[AllowAnonymous]暂时是调测时使用,最后会只给Super角色的用户才能创,当然也可以私人注册,我这里思路是只能管理者创建。
编写视图注意编写前要生成方案哟。
视图代码
@model IEnumerable<MYtest2018.Models.ApplicationUser>
@{
ViewBag.Title = "List"; 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">
<a class="btn btn-primary" href="/User/Add">添加</a>
<button id="btnEdit" type="button" class="btn btn-info " onclick="editModel()"><i class="fa fa-pencil"></i> 编辑</button>
<button id="btnDel" type="button" class="btn btn-danger " onclick="delData()">
<i class="fa fa-remove"></i> <span class="bold">删除</span>
</button>
<button id="btnSetRole" type="button" class="btn btn-info "><i class="fa fa-user"></i> 角色授权</button>
<button id="btnResetPwd" class="btn btn-warning"><i class="fa fa-undo"></i> 重置密码</button>
</div>
<div class="form-group">
<div class="input-group">
<input id="txtSearchKey" type="text" class="input form-control" placeholder="搜索关键字" />
<span class="input-group-btn">
<button id="btnSearch" class="btn btn btn-primary" type="button"> <i class="fa fa-search"></i> 搜索</button>
</span>
</div>
</div>
<table class="table table-hover margin bottom">
<thead>
<tr>
<th style="width: 1%" class="text-center">No.</th>
<th>部室</th>
<th class="text-center">用户名</th>
<th class="text-center">真实名</th>
<th class="text-center">Tel.</th>
<th></th>
</tr>
</thead>
<tbody>
@foreach (var user in Model)
{
<tr>
<td class="text-center"> <img src=@Html.DisplayFor(m => user.HeaderPic) alt="头像" class="img-circle" height="42"> </td>
<td>
@Html.DisplayFor(m => user.DepartmentId)
</td>
<td class="text-center small">@Html.DisplayFor(m => user.UserName) </td>
<td class="text-center">@Html.DisplayFor(m => user.RealName)></td>
<td class="text-center"> @Html.DisplayFor(m => user.PhoneNumber) </td>
<td>@Html.ActionLink("详情", "DetailsList", new { id = user.Id }, new { @class = "btn btn-info" })
@Html.ActionLink("编辑", "Edit", new { id = user.Id }, new { @class = "btn btn-success" })
@Html.ActionLink("删除", "Del", new { id = user.Id }, new { @class = "btn btn-warning" })
@Html.ActionLink("重置", "ResetPassword", new { id = user.Id }, new { @class = "btn btn-success" })
@Html.ActionLink("头像", "UploadHeaderPic", new { id = user.Id }, new { @class = "btn btn-warning", target = "_blank" })
</td>
</tr>
}
</tbody>
</table>
</div>
</div>
</div>
然后在下一节接着讲。

因为用户管理这个比较复杂,还有部门管理,两张表的合并JOIN显示,还有其他功能,所以下一章接着讲。
下一单要先讲部门管理。
浙公网安备 33010602011771号