2017-07-28 41 views
0

我有一個RegisterViewModel,它接受來自用戶的輸入並將其存儲在數據庫中。我已經使用IEnumerable在dropdownlist中存儲角色。視圖可以正常工作,但我無法獲取dropdownlist值並將其存儲到用戶表中。我應該做些什麼來獲得下拉列表值?無法在mvc中插入dropdownlist值到數據庫

public class RegisterViewModel 
    { 
     [Required] 
     [DisplayName("User Name")] 
     public string UserName { get; set; } 
     [Required] 
     [Remote("EmailAlreadyExists", "Validation", ErrorMessage = "User with this mail exists")] 
     [DisplayName("Email")] 
     public string Email { get; set; } 
     [Required] 
     [DisplayName("Password")] 
     public string Password { get; set; } 
     [Required] 
     [DataType(DataType.Password)] 
     [DisplayName("Confirm Password")] 
     public string ConfirmPassword { get; set; } 
     [Required] 
     public IEnumerable<SelectListItem> Roles { get; set; } 
    } 

我的榜樣

public class Role 
{ 
    public int Id { get; set; } 
    public string Name { get; set; } 
}   

查看的角色是,

<div class="form-group"> 
    @Html.LabelFor(model => model.Roles, htmlAttributes: new { @class = "control-label col-md-2" }) 
    <div class="col-md-10"> 
     @Html.DropDownListFor(model => model.Roles, Model.Roles, "Select Roles" , new {id = "Roles" }) 
     @Html.ValidationMessageFor(model => model.Roles, "", new { @class = "text-danger" }) 
    </div> 
</div> 

最後我控制器

public ActionResult Index() 
{ 
    RegisterViewModel uvm = new RegisterViewModel(); 
    uvm.Roles = from r in roles 
    select new System.Web.Mvc.SelectListItem 
    { 
     Text = r.Name, 
     Value = r.Id.ToString() 
    }; 
    return View(uvm);     
} 

[HttpPost] 
[ValidateAntiForgeryToken] 
public ActionResult Index(RegisterViewModel register) 
{ 
    if (ModelState.IsValid) 
    { 
     string code = Guid.NewGuid().ToString(); 

     userRepo.Insert(new Models.User() 
     { 
      UserName = register.UserName, 
      Email = register.Email, 
      Password = register.Password,  
      /* Role = register.Roles */    
      CreatedDate = DateTime.Now, 
      AuthCode = code, 
      Status = false 
     }); 
     SendMail(register.UserName, register.Email, code); 
     return RedirectToAction("Thankyou"); 
    } 
    return View(register); 
} 
+1

無法綁定'