2012-01-16 9 views
1

私はMVC3アプリケーションを作成しています。ユーザーはAdminまたはData Entryのどちらでもかまいません。そのため、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

答えて

0

Roles.AddUserToRole()方法hereの定義を見てみましょう...ありがとう。ユーザーを追加するロールが想定されている2番目のパラメータの "RoleName"をハードコーディングしています。

あなたがしたいのは、DropDownListから選択した値を取得し、その文字列をRoles.AddUserToRole()メソッド呼び出しで使用することです。

+0

ええ、これは私が間違っていたことです。最初に文字列として解析することなく、ドロップダウンリストの名前としてroleNameを想定していました。 –

+1

@CharbelWakim嬉しいです! –

関連する問題