繁体   English   中英

MVC身份更改用户角色

[英]MVC identity changing user roles

我有一个具有单用户身份验证的Vb.net MVC项目。 管理员可以在“管理员用户”页面中查看所有用户,用户分为3个不同的角色,分别是Admin,Employee和User。 我希望管理员能够提升角色:将用户升级为员工,将员工升级为Admin,并降级。

我考虑过要在每个用户旁边添加一个按钮来提升或降级。 我正在努力将每个按钮如何链接到每个用户,以及如何将那个用户更改发布回控制器。

有人可以指教,谢谢

UserViewModels.vb

Public Class GroupedUserViewModel
   Public Property Users() As List(Of UserViewModel)
   Public Property Admins() As List(Of UserViewModel)
   Public Property Employee() As List(Of UserViewModel)
End Class

Public Class UserViewModel
   Public Property FullName() As String
   Public Property Email() As String
   Public Property RoleName() As String
End Class

视图:我在视图中显示所有管理员,雇员和用户角色,这是管理示例:

@Modeltype GroupedUserViewModel

 @If Model.Admins.Any Then
    @:<div Class="Rtable Rtable--3cols Rtable--collapse">
        @For Each Admin In Model.Admins
            @:<div Class="Rtable-cell">
            @Admin.FullName
            @:</div>
            @:<div Class="Rtable-cell">
            @Admin.Email
            @:</div>
            @:<div Class="Rtable-cell">
            @Admin.RoleName
            @:</div>
        Next Admin
   @:</div>
End If

由于我的VB生锈,因此我将坚持以HTML为主的答案。 随意替换适当的HTML / URL帮助器或任何您想要的东西。

基本上,您可以采用以下两种方法之一:

  1. 每个按钮都有一个单独的表格。 这是很有道理的,如果你也有每个按钮单独的操作(即你有一个Promote作用和Demote控制器上的行动。

     <form action="/path/to/promote/action" method="post"> <input type="hidden" name="userId" value="1" /> <button type="submit">Promote</button> </form> <form action="/path/to/demote/action" method="post"> <input type="hidden" name="userId" value="1" /> <button type="submit">Demote</button> </form> 
  2. 具有“升级”和“删除”按钮的一种形式。 如果您只有一个可以同时处理两个过程的操作,那么这显然更有意义。

     <form action="/path/to/role/change/action" method="post"> <input type="hidden" name="userId" value="1" /> <button type="submit" name="promote">Promote</button> <button type="submit" name="demote">Demote</button> </form> 

    然后,由于仅单击的按钮将包含在帖子数据中,因此您可以相应地进行操作:

     If Request.Form["promote"] IsNot Nothing Then 'promote user ElseIf Request.Form["demote"] IsNot Nothing Then 'demote user EndIf 

您也可以变得更高级,并使用AJAX进行处理,但这足以使您前进。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM