首页 > 代码库 > asp.net identity 2.2.0 中角色启用和基本使用(六)
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=http://www.mamicode.com/"@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=http://www.mamicode.com/"@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=http://www.mamicode.com/"保存" 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=http://www.mamicode.com/"删除" class=" btn btn-default" /> | @Html.ActionLink("返回用户列表","Index") </div> }</div>
至此,所有的功能已经完全实现了。鉴于Asp.Net Identity 3.0.0将随vs2014于明年发布,暂时就不研究自定义模式了。
asp.net identity 2.2.0 中角色启用和基本使用(六)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。