Asp.Net MVC Identity 2.2.1 使用技巧

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Asp.Net MVC Identity 2.2.1 使用技巧相关的知识,希望对你有一定的参考价值。

创建角色管理相关视图

1、添加视图

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

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

 在第一行添加 @model IEnumerable<Microsoft.AspNet.Identity.EntityFramework.IdentityRole>

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

 1 @model IEnumerable<Microsoft.AspNet.Identity.EntityFramework.IdentityRole>
 2 
 3 @{
 4     ViewBag.Title = "角色列表";
 5 }
 6 
 7 <h2>角色列表</h2>
 8 
 9 <p>
10     @html.ActionLink("新建角色", "Create")
11 </p>
12 <table class="table">
13     <tr>
14         <th>
15             @Html.DisplayNameFor(model => model.Name)
16         </th>
17         <th>
18 
19         </th>
20     </tr>
21 
22     @foreach (var item in Model)
23     {
24         <tr>
25             <td>
26                 @Html.DisplayFor(modelItem => item.Name)
27             </td>
28             <td>
29                 @Html.ActionLink("编辑角色", "Edit", new { id = item.Id }) |
30                 @Html.ActionLink("角色详情", "Details", new { id = item.Id }) |
31                 @Html.ActionLink("删除角色", "Delete", new { id = item.Id })
32             </td>
33         </tr>
34     }
35 
36 </table>

重复上述步骤完成其他视图模板。

需要注意的是
1、Create视图模板和Edit视图模板 顶部定义的是一个xxxx(项目名).Models.RoleViewModel模型。
2、Delete视图模板和Details视图模板 顶部定义的是一个Microsoft.AspNet.Identity.EntityFramework.IdentityRole模型。

完成后的相关代码如下:

Details/角色详情视图

 1 @model Microsoft.AspNet.Identity.EntityFramework.IdentityRole
 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.Name)
15         </dt>
16         <dd>
17             @Html.DisplayFor(model => model.Name)
18         </dd>
19     </dl>
20 </div>
21 <h4>目前在该角色内的用户清单:</h4>
22 @if (ViewBag.UserCount == 0)
23 {
24     <hr />
25     <p>该角色未包含任何用户。</p>
26 }
27 
28 <table class="table">
29 
30     @foreach (var item in ViewBag.Users)
31     {
32         <tr>
33             <td>
34                 @item.UserName
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.RoleViewModel
 2 
 3 @{
 4     ViewBag.Title = "创建角色";
 5 }
 6 
 7 <h2>创建角色</h2>
 8 
 9 
10 @using (Html.BeginForm())
11 {
12     @Html.AntiForgeryToken()
13 
14     <div class="form-horizontal">
15         <h4>角色</h4>
16         <hr />
17         @Html.ValidationSummary(true)
18 
19         <div class="form-group">
20             @Html.LabelFor(model => model.Name, new { @class = "control-label col-md-2" })
21             <div class="col-md-10">
22                 @Html.TextBoxFor(model => model.Name, new { @class = "form-control" })
23                 @Html.ValidationMessageFor(model => model.Name)
24             </div>
25         </div>
26 
27         <div class="form-group">
28             <div class="col-md-offset-2 col-md-10">
29                 <input type="submit" value="创建角色" class="btn btn-default" />
30             </div>
31         </div>
32     </div>
33 }
34 
35 <div>
36     @Html.ActionLink("返回角色列表", "Index")
37 </div>
38 
39 @section Scripts {
40     @Scripts.Render("~/bundles/jqueryval")
41 }

 

Edit/编辑角色视图

 1 @model xxxx.Models.RoleViewModel
 2 
 3 @{
 4     ViewBag.Title = "编辑角色";
 5 }
 6 
 7 <h2>编辑角色</h2>
 8 
 9 
10 @using (Html.BeginForm())
11 {
12     @Html.AntiForgeryToken()
13     
14     <div class="form-horizontal">
15         <h4>角色组</h4>
16         <hr />
17         @Html.ValidationSummary(true)
18         @Html.HiddenFor(model => model.Id)
19 
20         <div class="form-group">
21             @Html.LabelFor(model => model.Name, new { @class = "control-label col-md-2" })
22             <div class="col-md-10">
23                 @Html.TextBoxFor(model => model.Name, new { @class = "form-control" })
24                 @Html.ValidationMessageFor(model => model.Name)
25             </div>
26         </div>
27 
28         <div class="form-group">
29             <div class="col-md-offset-2 col-md-10">
30                 <input type="submit" value="保存修改" class="btn btn-default" />
31             </div>
32         </div>
33     </div>
34 }
35 
36 <div>
37     @Html.ActionLink("返回角色列表", "Index")
38 </div>
39 
40 @section Scripts {
41     @Scripts.Render("~/bundles/jqueryval")
42 }

 

Delete/删除角色视图

 1 model Microsoft.AspNet.Identity.EntityFramework.IdentityRole
 2 
 3 @{
 4     ViewBag.Title = "删除角色";
 5 }
 6 
 7 <h2>删除角色</h2>
 8 
 9 <h3>你确认要删除此角色??  </h3>
10 <p>该操作只能删除角色,但不会删除角色内的用户。</p>
11 <div>
12     <h4>角色</h4>
13     <hr />
14     <dl class="dl-horizontal">
15         <dt>
16             @Html.DisplayNameFor(model => model.Name)
17         </dt>
18 
19         <dd>
20             @Html.DisplayFor(model => model.Name)
21         </dd>
22     </dl>
23     @using (Html.BeginForm())
24     {
25         @Html.AntiForgeryToken()
26 
27         <div class="form-actions no-color">
28             <input type="submit" value="删除角色" class="btn btn-default" /> |
29             @Html.ActionLink("返回角色列表", "Index")
30         </div>
31     }
32 </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下的基本使用 序言