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 回答