2012-01-16 64 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