2017-02-08 95 views
0

我有一個單用戶身份驗證的Vb.net MVC項目。管理員可以查看「經理用戶」頁面中的所有用戶,用戶分別分爲3個不同的角色管理員,員工和用戶。我希望管理員能夠促進角色:用戶到員工或員工到管理員,並且也會降級。MVC身份更改用戶角色

我想過在每個用戶旁邊添加一個按鈕來升級或降級。我正在努力如何將每個按鈕鏈接到每個用戶,以及我將如何發佈一個用戶更改回控制器。

可能有人請指教,謝謝

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 
+0

基本上你需要發送相應的動作參數給控制器,如按鈕點擊,如用戶ID,動作(提升,降級)。然後添加從相應列表中刪除。希望這可以幫助! – Amit

回答

0

我打算堅持主要基於HTML的答案,因爲我的VB是生鏽的。隨意替換適當的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來處理這個問題,但這應該足以讓你走了。

相關問題