0

アカウント コントローラーを使用し、各ユーザーにロールを追加したいと考えています。まず最初に、データベースの「webpage_role」テーブルからすべてのロールを取得したい。次に、登録ページに管理者を期待するすべてを表示し、ユーザーがラジオボタンまたはドロップダウンリストでそれらのいずれかを選択すると、ルールがデータベースのユーザー: 私の基本的な問題は、最初にすべてのロールを登録ページのユーザーに表示することです。これは私のアカウントコントローラーです:

 [AllowAnonymous]
    public ActionResult Register()
    {

        var allroles = Roles.GetAllRoles(); 
        return View();
    }

これは私の登録ビューになります:

<fieldset>
    <legend>Registration Form</legend>
    <ol>
        <li>
            @Html.LabelFor(m => m.UserName)
            @Html.TextBoxFor(m => m.UserName)         
        </li>
        <li>
            @Html.LabelFor(m => m.Password)
            @Html.PasswordFor(m => m.Password)
        </li>
        <li>
            @Html.LabelFor(m => m.ConfirmPassword)
            @Html.PasswordFor(m => m.ConfirmPassword)
        </li>            
       <li>
            @Html.LabelFor(m => m.roleName)

            @Html.RadioButtonFor(m => m.roleName, 1, new {style="width:20px" }) simple user <br />
            @Html.RadioButtonFor(m => m.roleName, 2, new {style="width:20px" }) agent <br /></li>


    </ol>

ロールのリストを取得し、foreach を使用して、この静的なラジオボタンの代わりにラジオボタンのビューで使用するにはどうすればよいですか?

4

1 に答える 1

0

モデルは次のようなものです

class UsersModel
{
    public string UserName { get; set; }
    public string Password { get; set; }
    public string ConfirmPassword { get; set; }
    public IEnumerable<Role> Roles { get; set; }
}
class Role
{
    Id { get; set; }
    Name { get; set; }
}

かみそりコントローラーはモデルをビューに与える必要があります

[AllowAnonymous]
public ActionResult Register()
{
    var allroles = Roles.GetAllRoles(); 
    var model =  // createUserModel
    return View(model);
}

カミソリ ビューで、ロールの ID と名前を表示できます

@model IEnumerable<Namespace.UsersModel>

// rest of your code here.. only example of foreach

@foreach (var role in Model.Roles) 
{
    @Html.RadioButtonFor(m => m.Name, m.Id, new {style="width:20px" }) simple user <br />
}
于 2013-11-07T07:28:28.120 に答える