2010-04-30 72 views
0

我想爲使用角色提供者的GetAllRoles生成一個下拉列表。DropDownList查看模型

我可以使用ViewData在控制器中生成下拉菜單,但我想使用View Model生成下拉列表,但我不確定使用View Model創建列表的最佳方式?

public ActionResult GetAllRoles() 
{ 
    ViewData["Roles"] = new SelectList(Roles.GetAllRoles()); 
    return View(); 
} 

回答

1

根據您想如何做到這一點,

var allroles = new SelectList(Roles.GetAllRoles()); 
return View(allRoles); 

創建類型的SelectList的強類型視圖。

根據您近期的評論。

public SelectList GetAllRoles() { 
    var AllRoles = new SelectList(Roles.GetAllRoles()); 
    return AllRoles; 
} 

public class RoleViewModel { 
    [Required] 
    [DisplayName("AllRoles")] 
    public SelectList AllRoles { get; set; } 
} 


public ActionResult GetAllRoles() 
{ 
    var roleViewModel = new RoleViewModel { 
     AllRoles = GetAllRoles(); 
    }; 
    return View(roleViewModel); 
} 
+0

我想在我的模型中添加GetAllRoles而不是在控制器中。 public string GetAllRoles() var AllRoles = new SelectList(Roles.GetAllRoles()); return AllRoles; } [必須] [DisplayName(「AllRoles」)] public String AllRoles {get;組; } – Jemes 2010-04-30 11:09:22

+0

非常感謝Raj,我認爲我只是使用一個字符串而不是SelectList。當我現在創建我的強類型View時,它似乎沒有創建HTML.Dropdown代碼。我可以自己添加嗎?我會喜歡使用Html.EditorFor()。 – Jemes 2010-04-30 13:01:28

+0

我可以自己添加嗎?不幸的是,是的。 – 2010-04-30 13:43:45