2010-04-30 76 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