2012-01-16 136 views
1

我正在创建一个MVC3应用程序,其中用户可以是管理员或数据条目,因此我需要使用MVC提供的用户身份验证中的角色。所以在我的登记表我已经加入创建自定义角色mvc3

    <%= 
          Html.DropDownList("RoleName", new SelectListItem[]{ 
          new SelectListItem{ Text= "Admin", Value="admin"}, 
          new SelectListItem{ Text= "Data Entry", Value="data"} 
        }) %> 

而且我修改寄存器控制如下:

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

现在,当我登记我得到以下错误: 的作用“”没有被发现。

谢谢...

+2

因为您没有一个名为“RoleName”的角色。你需要编写你的方法来获取你的下拉列表中的角色。 – keni 2012-01-16 14:25:53

回答

0

看看定义为Roles.AddUserToRole()方法here。您正在对用于添加用户的角色的第二个参数进行“RoleName”硬编码。

你想要做的是从你的DropDownList中检索选定的值,并在你的Roles.AddUserToRole()方法调用中使用该字符串。

+0

是的,这是我做错了我假设角色名称作为下拉列表的名称,而不首先解析它作为字符串... – 2012-01-16 16:37:22

+1

@CharbelWakim很高兴你得到它的工作! – 2012-01-16 16:54:23