2013-02-14 46 views
0

型号:DropDownListFor报告类型不匹配

[Required(ErrorMessage = "You must assign this user a role")] 
    [Display(Name = "Role")] 
    public string UserRole { get; set; } 

    public IEnumerable<System.Web.Mvc.SelectListItem> UserRoles { get; set; } 

控制器:

public ActionResult CreateNewUser() 
    { 
     CreateNewUserModel model = new CreateNewUserModel(); 
     model.UserRoles = new [] 
     { 
      new SelectListItem{Value="Administrator", Text="Administrator"}, 
      new SelectListItem{Value="User", Text="User"} 
     }; 
     //model.UserRole = "Administrator"; 
     return View(model); 
    } 

查看:

@Html.DropDownListFor(x => x.UserRole, Model.UserRoles,"Select a role") 
    @Html.ValidationMessageFor(x=>x.UserRole) 

当加载到创建新用户的页面,我有一个异常说明UserRole must be of type IEnumerable<SelectList>

回答

0

尝试改变:

model.UserRoles = new [] 
    { 
     new SelectListItem{Value="Administrator", Text="Administrator"}, 
     new SelectListItem{Value="User", Text="User"} 
    }; 

到:

model.UserRoles = List<SelectListItem> 
    { 
     new SelectListItem{Value="Administrator", Text="Administrator"}, 
     new SelectListItem{Value="User", Text="User"} 
    };