如何获取角色列表并将其用作注册页面中的radiobuttons或下拉列表?

时间:2013-11-07 07:19:39

标签: c# asp.net-mvc-4

我将使用帐户控制器,我想为每个用户添加角色。 首先,我想从数据库中的“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使用它来查看radiobutton而不是这个静态无线电接口?

1 个答案:

答案 0 :(得分: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 />
}