Asp.net mvc 3 MVC3 Html.DropDownListFor的帮助

Asp.net mvc 3 MVC3 Html.DropDownListFor的帮助,asp.net-mvc-3,Asp.net Mvc 3,我需要一些关于如何在MVC3中使用Html.DropDownListFor的帮助,因为文档非常糟糕,我在这里找不到我需要的答案 我有以下型号 public class Users { public virtual User_Roles RoleID {get; set;} public virtual string UserName{get; set;} ... more stuff } public class User_Roles { public v

我需要一些关于如何在MVC3中使用Html.DropDownListFor的帮助,因为文档非常糟糕,我在这里找不到我需要的答案

我有以下型号

public class Users
{
     public virtual User_Roles RoleID {get; set;}
     public virtual string UserName{get; set;}
     ... more stuff
}

public class User_Roles
{
    public virtual Int32 RoleID {get; set;}
    public virtual string Role {get; set;}
}
我的页面(create_user.cshtml)如下所示:

@model Users
... stuff
@Html.LabelFor(m => m.RoleID)
@Html.DropDownListFor(m => m.RoleID, Model.RoleID.Role, Model.RoleID.RoleID)
它不断抛出错误
“'System.Web.Mvc.HtmlHelper'不包含'DropDownListFor'的定义”


有人能告诉我如何从数据库中提取角色名称和ID列表吗?因为这显然不是这样做的方法。

您需要使用
SelectList
传递下拉列表项

确保从控制器中检索
ViewBag.Roles
中的角色

@Html.DropDownListFor(m => m.RoleId, new SelectList(ViewBag.Roles as System.Collections.IEnumerable, "Id", "Name"), "")

在您的模型中,我看不到任何集合类型。下拉列表需要一个集合。这非常有效,非常感谢!我总是忘记一个ViewBag可以不仅仅是一个字符串。