Asp.Net MVC Identity 2.2.1 使用技巧(五)
创建用户管理相关视图
1、添加视图
打开UsersAdminController.cs 将鼠标移动到public ActionResult Index()上 右键》添加视图 系统会弹出对话框 什么也不用改 直接“添加”。
2、在创建的视图上添加数据模型
在第一行添加 @model IEnumerable<xxxx(项目名).Models .ApplicationUser>。
3、建立Index页面视图模板,代码完成后如下:
1 @model IEnumerable<xxxx.Models.ApplicationUser> 2 @{ 3 ViewBag.Title = "用户列表"; 4 } 5 6 <h2>用户列表</h2> 7 8 <p> 9 @Html.ActionLink("新建用户", "Create") 10 </p> 11 <table class="table"> 12 <tr> 13 <th> 14 @Html.DisplayNameFor(model => model.UserName) 15 </th> 16 <th> 17 18 </th> 19 </tr> 20 21 @foreach (var item in Model) 22 { 23 <tr> 24 <td> 25 @Html.DisplayFor(modelItem => item.UserName) 26 </td> 27 <td> 28 @Html.ActionLink("编辑用户", "Edit", new { id = item.Id }) | 29 @Html.ActionLink("用户详情", "Details", new { id = item.Id }) | 30 @Html.ActionLink("删除用户", "Delete", new { id = item.Id }) 31 </td> 32 </tr> 33 } 34 35 </table>
重复上述步骤完成其他视图模板。
需要注意的是 1、Create视图模板顶部定义的是@model xxxx.Models.RegisterViewModel模型
2、Edit视图模板顶部定义的是一个@model xxxx(项目名).Models.EditUserViewModel模型。
3、Delete视图模板和Details视图模板 顶部定义的是一个@model xxxx.Models.ApplicationUser模型。
完成后的相关代码如下:
Details/用户详情视图
1 @model xxxx.Models.ApplicationUser 2 3 @{ 4 ViewBag.Title = "用户详情"; 5 } 6 7 <h2>用户详情</h2> 8 9 <div> 10 <h4>用户</h4> 11 <hr /> 12 <dl class="dl-horizontal"> 13 <dt> 14 @Html.DisplayNameFor(model => model.UserName) 15 </dt> 16 <dd> 17 @Html.DisplayFor(model => model.UserName) 18 </dd> 19 </dl> 20 </div> 21 <h4>该用户所在的角色:</h4> 22 @if (ViewBag.RoleNames.Count == 0) 23 { 24 <hr /> 25 <p>这个用户没有设置角色。</p> 26 } 27 28 <table class="table"> 29 30 @foreach (var item in ViewBag.RoleNames) 31 { 32 <tr> 33 <td> 34 @item 35 </td> 36 </tr> 37 } 38 </table> 39 <p> 40 @Html.ActionLink("编辑用户", "Edit", new { id = Model.Id }) | 41 @Html.ActionLink("返回用户列表", "Index") 42 </p>
Create/创建用户视图
1 @model xxxx.Models.RegisterViewModel 2 @{ 3 ViewBag.Title = "创建用户"; 4 } 5 6 <h2>@ViewBag.Title.</h2> 7 8 @using (Html.BeginForm("Create", "UsersAdmin", FormMethod.Post, new { @class = "form-horizontal", role = "form" })) 9 { 10 @Html.AntiForgeryToken() //创建防伪标记 11 <h4>创建用户</h4> 12 <hr /> 13 @Html.ValidationSummary("", new { @class = "text-error" }) 14 <div class="form-group"> 15 @Html.LabelFor(m => m.Email, new { @class = "col-md-2 control-label" }) 16 <div class="col-md-10"> 17 @Html.TextBoxFor(m => m.Email, new { @class = "form-control" }) 18 </div> 19 </div> 20 <div class="form-group"> 21 @Html.LabelFor(m => m.Password, new { @class = "col-md-2 control-label" }) 22 <div class="col-md-10"> 23 @Html.PasswordFor(m => m.Password, new { @class = "form-control" }) 24 </div> 25 </div> 26 <div class="form-group"> 27 @Html.LabelFor(m => m.ConfirmPassword, new { @class = "col-md-2 control-label" }) 28 <div class="col-md-10"> 29 @Html.PasswordFor(m => m.ConfirmPassword, new { @class = "form-control" }) 30 </div> 31 </div> 32 <div class="form-group"> 33 <label class="col-md-2 control-label"> 34 编辑用户角色 35 </label> 36 <div class="col-md-10"> 37 @foreach (var item in (SelectList)ViewBag.RoleId) 38 { 39 <input type="checkbox" name="SelectedRoles" value="@item.Value" class="checkbox-inline" /> 40 @Html.Label(item.Value, new { @class = "control-label" }) 41 } 42 </div> 43 </div> 44 <div class="form-group"> 45 <div class="col-md-offset-2 col-md-10"> 46 <input type="submit" class="btn btn-default" value="创建用户" /> 47 </div> 48 </div> 49 } 50 51 @section Scripts { 52 @Scripts.Render("~/bundles/jqueryval") 53 }
Edit/编辑用户视图
1 @model xxxx.Models.EditUserViewModel 2 3 @{ 4 ViewBag.Title = "编辑用户"; 5 } 6 7 <h2>编辑用户</h2> 8 9 10 @using (Html.BeginForm()) { 11 @Html.AntiForgeryToken() 12 13 <div class="form-horizontal"> 14 <h4>编辑用户</h4> 15 <hr /> 16 @Html.ValidationSummary(true) 17 @Html.HiddenFor(model => model.Id) 18 19 <div class="form-group"> 20 @Html.LabelFor(model => model.UserName, new { @class = "control-label col-md-2" }) 21 <div class="col-md-10"> 22 @Html.TextBoxFor(m => m.UserName, new { @class = "form-control" }) 23 @Html.ValidationMessageFor(model => model.UserName) 24 </div> 25 </div> 26 <div class="form-group"> 27 @Html.Label("角色组", new { @class = "control-label col-md-2" }) 28 <span class=" col-md-10"> 29 @foreach (var item in Model.RolesList) 30 { 31 <input type="checkbox" name="SelectedRole" value="@item.Value" checked="@item.Selected" class="checkbox-inline" /> 32 @Html.Label(item.Value, new { @class = "control-label" }) 33 } 34 </span> 35 </div> 36 37 <div class="form-group"> 38 <div class="col-md-offset-2 col-md-10"> 39 <input type="submit" value="保存" class="btn btn-default" /> 40 </div> 41 </div> 42 </div> 43 } 44 45 <div> 46 @Html.ActionLink("Back to List", "Index") 47 </div> 48 49 @section Scripts { 50 @Scripts.Render("~/bundles/jqueryval") 51 }
Delete/删除用户视图
1 @model xxxx.Models.ApplicationUser 2 3 @{ 4 ViewBag.Title = "删除用户"; 5 } 6 7 <h2>删除用户</h2> 8 9 <h3>您确认要删除这个用户吗??</h3> 10 <div> 11 <h4>用户</h4> 12 <hr /> 13 <dl class="dl-horizontal"> 14 <dt> 15 @Html.DisplayNameFor(model => model.UserName) 16 </dt> 17 18 <dd> 19 @Html.DisplayFor(model => model.UserName) 20 </dd> 21 </dl> 22 23 @using (Html.BeginForm()) { 24 @Html.AntiForgeryToken() 25 26 <div class="form-actions no-color"> 27 <input type="submit" value="删除用户" class="btn btn-default" /> | 28 @Html.ActionLink("返回用户列表", "Index") 29 </div> 30 } 31 </div>