创建用户管理相关视图

1、添加视图

打开UsersAdminController.cs   将鼠标移动到public ActionResult Index()上  右键》添加视图   系统会弹出对话框  什么也不用改 直接“添加”。

2、在创建的视图上添加数据模型

在第一行添加 @model IEnumerable<xxxx(项目名).Models .ApplicationUser>。

3、建立Index页面视图模板,代码完成后如下:

 @model IEnumerable<xxxx.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模型。

完成后的相关代码如下:

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 == )
{
<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>

Create/创建用户视图

 @model xxxx.Models.RegisterViewModel
@{
ViewBag.Title = "创建用户";
} <h2>@ViewBag.Title.</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(m => m.Email, new { @class = "col-md-2 control-label" })
<div class="col-md-10">
@Html.TextBoxFor(m => m.Email, new { @class = "form-control" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(m => m.Password, new { @class = "col-md-2 control-label" })
<div class="col-md-10">
@Html.PasswordFor(m => m.Password, new { @class = "form-control" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(m => m.ConfirmPassword, new { @class = "col-md-2 control-label" })
<div class="col-md-10">
@Html.PasswordFor(m => m.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="checkbox" 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" value="创建用户" />
</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.UserName, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.TextBoxFor(m => m.UserName, new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.UserName)
</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("Back to List", "Index")
</div> @section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}

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 MVC Identity 2.2.1 使用技巧(五)的更多相关文章

  1. Asp.Net MVC Identity 2.2.1 使用技巧(二)

    之前我们看到了新生成的项目中跟identity有关的有四个文件,这些文件是基础功能,并未开启identity的全部功能.现在我们先启用角色功能. 1.在App_Start文件夹中的IdentityCo ...

  2. Asp.Net MVC Identity 2.2.1 使用技巧(一)

    开发环境:vs2015 UP3  or  vs2017RC  项目环境:asp.net 4.6.1   identity版本为:asp.net identity 2.2.1 1.创建项目. 没什么好说 ...

  3. Asp.Net MVC Identity 2.2.1 使用技巧(八)

    一.添加管理链接 在View/Shared/_layout.cshtml,在页面导航上(28行)添加如下代码: @*通过身份验证并确认用户属于Admin角色显示管理菜单*@ @if (Request. ...

  4. Asp.Net MVC Identity 2.2.1 使用技巧(七)

    创建角色管理相关视图 1.添加视图 打开RolesAdminController.cs   将鼠标移动到public ActionResult Index()上  右键>添加视图   系统会弹出 ...

  5. Asp.Net MVC Identity 2.2.1 使用技巧(六)

    使用用户管理器之角色管理 一.建立模型,这里我们其实在之前的技巧(五)已经建好了. 二.建立控制器RolesAdminController 1.在controllers文件夹上点右键>添加> ...

  6. Asp.Net MVC Identity 2.2.1 使用技巧(四)

    使用用户管理器之用户管理 一.建立模型 1.在Models文件夹上点右键 >添加>类     类的名称自定,我用AdminViewModels命名的. 2.更改模板自建的AdminView ...

  7. Asp.Net MVC Identity 2.2.1 使用技巧(三)

    使用用户管理器之用户注册 用户管理的基本功能模块中已经做好了,我们现在做一些调整. 1.修改用户名注册规则. 上一篇中可选操作已经详解了这里把基本的设置简介下. 打开App_Start/identit ...

  8. ASP.NET MVC Identity 兩個多個連接字符串問題解決一例

    按照ASP.NET MVC Identity建立了一個用戶權限管理模塊,由于還要加自己已有的數據庫,所以建立了一個實體模型,建立了之后,發現登錄不了: 一直顯示“Login in failed for ...

  9. ASP.NET MVC 3 入门级常用设置、技巧和报错

    1.ASP.NET MVC 3 如何去除默认验证 这个默认验证是在web.config配置文件中设置的    <add key="ClientValidationEnabled&quo ...

随机推荐

  1. django显示SQL语句

    django显示SQL语句 有时候我们使用模型查询数据,但是并不知道具体执行的SQL语句到底对不对.那么可以通过下面的方法打印出具体执行的SQL语句.这样有助于调试: queryset = MyMod ...

  2. How can I set ccshared=-fPIC while executing ./configure?

    解决方式如下: make clean ./configure CFLAGS=-fPIC CXXFLAGS=-fPIC

  3. 多功能电子通讯录(涉及到了双向链表的使用,Linux文件编程等等)

    readme.txt //作为一个程序员,我们咋么能不写用户手册呢!MSP的我觉得用户体验是王道,苹果手机的用户体验的确不错!不过WP加油!我去,扯远了!赶紧看我的程序吧!  歡迎使用多功能電子通訊錄 ...

  4. 搭建nginx代理,为前端页面跨域调用接口

    前端同学因开发需要,本地搭建的服务需要调用其它域名的接口,在帮助正确配置后,已能正常使用. 这里写一篇博客,记录一下. 前端页面地址为127.0.0.1:9813/a.html 接口地址http:// ...

  5. IOS项目之弹出动画终结篇

    在之前写过IOS项目之弹出动画一.IOS项目之弹出动画二.IOS项目之弹出动画三,今天来一个终极封装已经上传到Github上弹出动画总结篇UIPopoverTableView. UIPopoverTa ...

  6. Delphi下OpenGL2d绘图(03)-画线

    一.前言 画线与画点基本上代码是相同.区别在于glBegin()的参数.绘制的框架代码可以使用 Delphi下OpenGL2d绘图(01)-初始化 中的代码.修改的部份为 Draw 函数的内容. 二. ...

  7. nginx timeout 配置 全局timeout 局部timeout web timeout

    nginx比较强大,可以针对单个域名请求做出单个连接超时的配置. 比如些动态解释和静态解释可以根据业务的需求配置 proxy_connect_timeout :后端服务器连接的超时时间_发起握手等候响 ...

  8. [转]Web后台模拟前端post(带NTLM验证)

    本文转自:http://www.cnblogs.com/pzstudyhard/p/4805885.html using System.Data; using System.Net; using Sy ...

  9. php中类和对象的操作

    在类中用$this指代对象本身. 用self::指代类本身. $p1 = new Person('michael');//向Person类的构造函数__construct中传名字 echo($p1-& ...

  10. 如鹏网学习笔记(十四)ASP.NET

    Asp.net笔记 一.Socket类 进行网络编程的类,可以在两台计算机之间进行网络通讯 过程: 向服务器发送指令: GET /index.html HTTP/1.1 Host:127.0.0.1: ...