2011-09-16 5 views
0

설명서가 미친 듯이 나쁘기 때문에 MVC3에서 Html.DropDownListFor를 사용하는 방법에 대한 도움이 필요하며 여기에 필요한 답변을 찾을 수 없습니다.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<Users>' does not contain a definition for 'DropDownListFor'"

이 사람이 나를 어떻게 설명 할 수있는 오류를 던지고 계속 DB에서 역할 이름과 ID의 목록을 가져올 수있는 명확한 방법이 아니기 때문에이 역할 이름과 ID 목록을 가져올 수 있습니까?

+0

내 모델에서 어떤 컬렉션 유형도 볼 수 없습니다. 드롭 다운 목록에는 컬렉션이 필요합니다. –

답변

2

SelectList을 사용하여 드롭 다운 항목을 전달해야합니다.

컨트롤러에서 ViewBag.Roles의 역할을 검색했는지 확인하십시오.

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

이것은 완벽하게 작동했습니다. 정말 고마워요! ViewBag는 단순한 문자열 이상일 수 있다는 사실을 계속 잊고 있습니다. – Joshua