2012-04-15 3 views
1

ich auf meinem Konto Controller die folgende Störung erhalte:Cant hinzufügen Rollen automatisch

The role 'roleName' was not found. 

Aber ich habe zwei Rollen admin, und Spieler

der Dropdown-Liste in meinem Register Ansicht abholt:

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

In meinem Konto Controller habe ich folgendes:

// 
     // 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); 

     } 

Ich weiß nicht, warum das Hacken ist?

Antwort

1

Sieht aus wie das Problem hier ist:

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

Ich vermute, Sie nicht zu haben bedeutet „rolename“ als wörtliche zu schreiben. Vielleicht model.RoleName oder "Benutzer" oder eine Rolle, die in Ihrem Rollenanbieter existiert?

+0

Ich verstehe Ihre Antwort nicht? erzählst du mir etwas ändern oder darauf hinweisen, dass ich falschen Code habe Es tut mir leid bin nicht unhöflich, nur nicht verstehen, Ihre Antwort ist traurig – user1137472

+0

Oh ok ich verstehe, dass Sie mich model.username zu model.rolename ändern möchte ich werde das tun und lassen Sie wissen, das Ergebnis danke für die Antwort – user1137472

+0

model.rolename nicht vorhanden, wenn ich es ändern daher die nächste Option ist model.username und setzen Sie den Benutzernamen in Klammern werden versuchen, und lassen Sie wissen, danke – user1137472