2012-04-23 49 views
3

私は、ユーザーが役割を選択して作成するアカウントを選択できるようにするためのドロップダウンリストを作成しました。私が直面している問題は、ドロップダウンに管理者ロールが表示されていることです。リストから管理者の役割を隠すか、削除するにはどうしたらいいですか?ドロップダウンリストから項目を削除する

ドロップダウンリストがviewbagで生成されます。

public ActionResult Register() 
     { 
      List<SelectListItem> list = new List<SelectListItem>(); 
      SelectListItem item; 
      foreach (String role in Roles.GetAllRoles()) 
      { 
       item = new SelectListItem { Text = role, Value = role }; 
       list.Add(item); 
      } 

      ViewBag.roleList = (IEnumerable<SelectListItem>)list; 
      return View(); 
     } 

何かアドバイス - むしろ選択リストから管理者の役割を削除するよりも、

答えて

3

を歓迎し、私はあなたが代わりの管理者の役割を削除すべきだと思います選択リストを作成している配列。

ので、代わりの

foreach (String role in Roles.GetAllRoles()) 


foreach (String role in Roles.GetAllRoles().Where(role => role != "admin")) 

あなたが望んだ場合には、独自の方法にはさらに、抽象、この限られた役割を呼び出すことができます。

ご質問の一部ではありませんが、すべてのコードを簡単なlinq文で置き換えることができます。

ViewBag.roleList = Roles.GetAllRoles().Where(role => role != "admin"). 
    Select(role => new SelectListItem { Text = role, Value = role}).ToList(); 

あなたの質問の一部ではありませんが、私はあなたのviewmodelのSelectList部分を作ることを強くお勧めします。

+0

正しい解決策が必要です ")" foreach(Roles.GetAllRoles()内の文字列ロール(role => role!= "admin")) –

+0

@DazaAzaありがとう、編集済みの回答です。関連のない提案も提供されました。 – DMulligan

関連する問題