2012-04-15 4 views
1

Я получаю следующее сообщение об ошибке на мой контроллер счета:Брус добавить роли автоматически

The role 'roleName' was not found. 

Но у меня есть две роли администратора, и геймеры

выпадающий список, на мой взгляд книге их подхватывает:

<label for="roleName">Select Role:</label> 
    @Html.DropDownList("roleName") 
    @Html.ValidationMessage("roleName") 

В моем контроллере счета я следующее:

// 
     // GET: /Account/Register 
     [AllowAnonymous] 
     public ActionResult Register() 
     { 
      ViewData["roleName"] = new SelectList(Roles.GetAllRoles(), "roleName"); 
      return View(); 
     } 

     // 
     // POST: /Account/Register 

     [HttpPost] 
     [AllowAnonymous] 
     public ActionResult Register(RegisterModel model) 
     { 
      if (ModelState.IsValid) 
      { 
       // Attempt to register the user 
       MembershipCreateStatus createStatus; 
       Membership.CreateUser(model.UserName, model.Password, model.Email, null, null, true, null, out createStatus); 

       if (createStatus == MembershipCreateStatus.Success) 
       { 
        Roles.AddUserToRole(model.UserName, "roleName"); 
        FormsAuthentication.SetAuthCookie(model.UserName, false /* createPersistentCookie */); 
        return RedirectToAction("Index", "Home"); 
       } 

       else 
       { 
        ModelState.AddModelError("", ErrorCodeToString(createStatus)); 
       } 
      } 

      // If we got this far, something failed, redisplay form 
      return View(model); 

     } 

Я не знаю, почему это так?

ответ

1

Похоже, проблема здесь:

Roles.AddUserToRole(model.UserName, "roleName"); 

Я предполагаю, что ты не хотел писать «RoleName» как литерал. Возможно, model.RoleName или «Пользователь» или роль, которая существует в вашем ролевом провайдере?

+0

Я не понимаю ваш ответ? вы говорите мне что-то изменить или указать, что у меня неправильный код, извините, я не груб, просто не понимаю ваш ответ, извините – user1137472

+0

О, хорошо, я понимаю, что вы хотите, чтобы я менял model.username на model.rolename, я сделаю это дайте вам знать о результате спасибо за ответ – user1137472

+0

model.rolename не exsit, когда я меняю его, следующая опция - имя модели. имя пользователя и поместить имя пользователя в скобки попробуем это и дадим вам знать спасибо – user1137472

Смежные вопросы