我正在构建一个ASP.NET MVC 4 Web应用程序,它允许创建具有角色的用户。有两个角色:管理员和用户。当注册到来时,用户可以通过下拉列表选择新用户的角色。所以这就是我迄今所做的。
我的UserViewModel:
public class UserModel
{
[Required]
[StringLength(50)]
[Display(Name="Username : ")]
public string Username { get; set; }
[Required]
[DataType(DataType.Password)]
[StringLength(50, MinimumLength=6)]
[Display(Name = "Password : ")]
public string Password { get; set; }
public Role Role { get; set; }
}
我的HttpGet方法:
[HttpGet]
public ActionResult Registration()
{
context = new MainDatabaseEntities();
ViewBag.Roles = new SelectList(context.Roles, "RoleId", "RoleDesc");
return View();
}
从这里开始,我不知道该怎么做。我的ViewModel是否足以满足我的需求(创建和更新用户)?我应该如何将ViewBag.Roles用于我的注册视图?
任何帮助人?我非常感激!
答案 0 :(得分:3)
查看:
@Html.DropDownListFor(m => m.RoleId, (SelectList)ViewBag.Roles )
您的模型中应该有一个RoleId来保存所选项目。
答案 1 :(得分:0)
你可以这样使用它。
@Html.DropDownList("Roles")
它将为ViewBag创建DropDownList
答案 2 :(得分:0)
您需要将ViewBag项目显式转换为预期类型(IEnumerable<SelectListItem>)
,ViewBag is a dynamic type
@Html.DropDownListFor(m => m.RoleId,((IEnumerable<SelectListItem>)ViewBag.Roles))
答案 3 :(得分:0)
首先看,它显示您正在尝试注册该帐户。为此,按照一步一步的步骤:
注册http get方法添加以下行
ViewBag.Name = new SelectList(context.Roles.ToList(),“Name”,“Name”);
然后HttpPost方法添加以下行:
ViewBag.Name = new SelectList(context.Roles.ToList(),“Name”,“Name”);
在注册视图中添加以下行:
@ Html.DropDownList(“UserRoles”,(SelectList)ViewBag.Name,“”)
我希望这会奏效。