2010-04-30 9 views
0

역할 공급자를 사용하여 GetAllRoles에 대한 드롭 다운 목록을 생성하려고합니다.DropDownList 모델보기

ViewData를 사용하여 컨트롤러에서 드롭 다운을 생성 할 수 있지만보기 모델을 사용하여 드롭 다운을 생성하고 싶지만보기 모델을 사용하여 목록을 만드는 가장 좋은 방법은 확실하지 않습니까? 당신이 그것을 수행하는 방법에 따라

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를 추가하고 싶습니다. 공개 문자열 GetAllRoles() { var AllRoles = new SelectList (Roles.GetAllRoles()); return AllRoles; [필수] [DisplayName ("AllRoles")] public String AllRoles 세트; } – Jemes

+0

Raj는 훌륭하게 작동합니다. SelectList보다는 문자열을 사용하고있는 것 같습니다. 강력하게 형식화 된 뷰를 만들 때 HTML.Dropdown 코드를 만들지 않는 것 같습니다. 나는 이것을 나 자신에게 더하는 것이 좋을까? 나는 Html.EditorFor()를 사용하는 것을 좋아했을 것이다. – Jemes

+0

방금 ​​직접 추가하겠습니까? 불행히도 그렇습니다. –