Asp.Net MVC Identity 2.2.1 使用技巧

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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.Email, new { @class = "control-label col-md-2" })
21             <div class="col-md-10">
22                @Html.TextBoxFor(m => m.Email, new { @class = "form-control" })
23                @Html.ValidationMessageFor(model => model.Email)
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>

 

以上是关于Asp.Net MVC Identity 2.2.1 使用技巧的主要内容,如果未能解决你的问题,请参考以下文章

Asp.Net MVC Identity 2.2.1 使用技巧

ASP.NET MVC Identity 添加角色

[ASP.NET MVC] ASP.NET Identity登入技术剖析

ASP .NET 5 MVC 6 Identity 3 Roles Claims Groups [关闭]

Microsoft 'Identity Platform' 是不是(轻松)与'(ASP.NET) Identity Framework' - MVC5 & .NET 4.7.2 集成?

asp.net identity 3.0.0 在MVC下的基本使用 序言