asp.net identity 2.2.0 中角色启用和基本使用(六)
创建用户管理相关视图
第一步:添加视图 打开UsersAdminController.cs 将鼠标移动到public ActionResult Index()上 右键》添加视图 系统会弹出对话框 什么也不用改 直接“添加”
第二步:在创建的视图上定义一个公开枚举模型
在第一行添加 @model IEnumerable<xxxx(项目名).Models .ApplicationUser>
第三步:建立页面视图模板,代码完成后如下。
@model IEnumerable<ttg2015.Models .ApplicationUser> @{ ViewBag.Title = "用户列表"; } <h2>用户列表</h2> <p> @Html.ActionLink("新建用户","Create") </p> <table class="table"> <tr> <th> @Html.DisplayNameFor(model =>model.UserName) </th> <th> </th> </tr> @foreach(var item in Model) { <tr> <td> @Html.DisplayFor(modelItem => item.UserName) </td> <td> @Html.ActionLink("编辑用户", "Edit", new { id =item.Id}) | @Html.ActionLink("用户详情", "Details", new { id = item.Id})| @Html.ActionLink("删除用户", "Delete", new { id = item.Id }) </td> </tr> } </table>
重复上述步骤完成其他视图模板。
需要注意的是 1、Create视图模板顶部定义的是@model xxxx.Models.RegisterViewModel模型
2、Edit视图模板顶部定义的是一个@model xxxx(项目名).Models.EditUserViewModel模型。
3、Delete视图模板和Details视图模板 顶部定义的是一个@model xxxx.Models.ApplicationUser模型。
完成后的相关代码如下:
Create视图模板:
@model xxxx.Models.RegisterViewModel @{ ViewBag.Title = "创建用户"; } <h2>创建用户</h2> @using (Html.BeginForm("Create","UsersAdmin",FormMethod.Post,new{@class ="form-horizontal",role ="form"})) { @Html.AntiForgeryToken() //创建防伪标记 <h4>创建用户</h4> <hr /> @Html.ValidationSummary("",new {@class = "text-error"}) <div class=" form-group"> @Html.LabelFor(model => model.Email, new { @class ="col-md-2 control-label"}) <div class=" col-md-10"> @Html.TextBoxFor(model => model.Email, new { @class="form-control"}) </div> </div> <div class="form-group"> @Html.LabelFor(model => model.Password, new { @class = "col-md-2 control-label" }) <div class=" col-md-10"> @Html.PasswordFor(model => model.Password, new { @class = "form-control" }) </div> </div> <div class="form-group"> @Html.LabelFor(model => model.ConfirmPassword, new { @class = "col-md-2 control-label" }) <div> @Html.TextBoxFor(model => model.ConfirmPassword, new { @class = "form-control" }) </div> </div> <div class=" form-group"> <label class=" col-md-2 control-label"> 编辑用户角色 </label> <div class=" col-md-10"> @foreach(var item in (SelectList)ViewBag.RoleId) { <input type="button" name="SelectedRoles" value="@item.Value" class="checkbox-inline" /> @Html.Label(item.Value, new { @class = "control-label" }) } </div> </div> <div class="form-group"> <div class="col-md-offset-2 col-md-10"> <input type="submit" class="btn btn-default" /> </div> </div> } @section Scripts{ @Scripts.Render("~/bundles/jqueryval") }
用户编辑Edit视图模板:
@model xxxx.Models.EditUserViewModel @{ ViewBag.Title = "编辑用户"; } <h2>编辑用户</h2> @using (Html.BeginForm()) { @Html.AntiForgeryToken(); <div class=" form-horizontal"> <h4>编辑用户</h4> <hr /> @Html.ValidationSummary(true) @Html.HiddenFor(model =>model .Id) <div class="form-group"> @Html.LabelFor(model => model.Email, new { @class = "control-label col-md-2" }) <div class=" col-md-10"> @Html.TextBoxFor(model => model.Email, new { @class = "form-control" }) @Html.ValidationMessageFor(model => model .Email ) </div> </div> <div class=" form-group"> @Html.Label("角色组", new { @class = "control-label col-md-2" }) <span class=" col-md-10"> @foreach (var item in Model.RolesList) { <input type="checkbox" name="SelectedRole" value="@item.Value" checked ="@item.Selected" class="checkbox-inline" /> @Html.Label(item.Value ,new {@class = "control-label" }) } </span> </div> <div class="form-group"> <div class="col-md-offset-2 col-md-10"> <input type="submit" value="保存" class="btn btn-default"> </div> </div> </div> } <div> @Html.ActionLink("返回用户列表","Index") </div> @section Scripts { @Scripts.Render("~/bundles/jqueryval") }
Details视图模板:
@model xxxx(项目名).Models.ApplicationUser @{ ViewBag.Title = "用户详情"; } <h2>用户详情</h2> <div> <h4>用户</h4> <hr /> <dl class="dl-horizontal "> <dt> @Html.DisplayNameFor(model => model.UserName) </dt> <dd> @Html.DisplayFor(model => model.UserName) </dd> </dl> </div> <h4>该用户所在的角色</h4> @if( ViewBag.RoleNames.Count == 0) { <hr /> <p>这个用户没有设置角色</p> } <table class="table"> @foreach (var item in ViewBag.RoleNames) { <tr> <td> @item </td> </tr> } </table> <p> @Html.ActionLink("编辑用户", "Edit", new { id=Model.Id}) @Html.ActionLink("返回用户列表","Index") </p>
Delete视图模板:
@model xxxx.Models .ApplicationUser @{ ViewBag.Title = "删除用户"; } <h2>删除用户</h2> <h3>您确认要删除这个用户吗??</h3> <div> <h4>用户</h4> <hr /> <dl class=" dl-horizontal "> <dt> @Html.DisplayNameFor(model => model .UserName) </dt> <dd> @Html.DisplayFor(model =>model .UserName) </dd> </dl> @using (Html.BeginForm()) { @Html.AntiForgeryToken() <div class="form-actions no-color"> <input type="submit" value="删除" class=" btn btn-default" /> | @Html.ActionLink("返回用户列表","Index") </div> } </div>
至此,所有的功能已经完全实现了。鉴于Asp.Net Identity 3.0.0将随vs2014于明年发布,暂时就不研究自定义模式了。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。