以下帖子中的答案:
具有角色 MVC3 的注册表单,错误:ViewData 项的类型为“system.sting”必须为“IEnumerable<selectlistitem>
为我工作很棒。但是,如果我必须将用户分配到 Asp .Net 角色列表,这将如何改变?
我希望能够遍历可用角色列表并呈现复选框,当用户从模型中单击更新时,如何查看用户分配给的角色?(我希望这个问题有意义)。
提前致谢。
以下帖子中的答案:
具有角色 MVC3 的注册表单,错误:ViewData 项的类型为“system.sting”必须为“IEnumerable<selectlistitem>
为我工作很棒。但是,如果我必须将用户分配到 Asp .Net 角色列表,这将如何改变?
我希望能够遍历可用角色列表并呈现复选框,当用户从模型中单击更新时,如何查看用户分配给的角色?(我希望这个问题有意义)。
提前致谢。
好的,我在不使用 html 助手的情况下解决了它。 我仍在寻找 HTML 助手的答案:)。
模型
public class RolesModel
{
public string Email { get; set; }
public string[] Roles { get; set; }
}
启动视图的控制器代码
public Action Result ShowRoles()
{
model.Roles = Roles.GetAllRoles();
}
剃刀视图
@foreach (string role in Model.Roles)
{
<input type="checkbox" name="Roles" value="@role" checked="@Roles.IsUserInRole(@role)" />@role
}
更新视图的控制器代码
public ActionResult AccountManagement()
{
if (Roles.GetRolesForUser().Length > 0 )
Roles.RemoveUserFromRoles(model.Email, Roles.GetRolesForUser());
if (model.Roles != null && model.Roles.Length > 0)
Roles.AddUserToRoles(model.Email, model.Roles);
}
与往常一样,如果有更清洁/更好的方法,请告诉我。