使用视图模型从数据库中的下拉列表
本文关键字:下拉列表 数据库 视图 模型 | 更新日期: 2023-09-27 17:53:29
我正在构建一个ASP。NET MVC 4 web应用程序,允许创建具有角色的用户。有两个角色:管理员和用户。注册完成后,用户可以通过下拉列表选择新用户的角色。这是我到目前为止所做的。
My 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。注册视图中的角色?有什么帮助吗?非常感谢!
视图:
@Html.DropDownListFor(m => m.RoleId, (SelectList)ViewBag.Roles )
您应该在您的模型中有一个RoleId来保存选中的项目
你可以这样使用。
@Html.DropDownList("Roles")
它将为ViewBag创建下拉列表
您需要显式地将ViewBag项转换为期望的类型(IEnumerable<SelectListItem>)
,如ViewBag is a dynamic type
@Html.DropDownListFor(m => m.RoleId,((IEnumerable<SelectListItem>)ViewBag.Roles))
首先,它显示您正在尝试注册帐户。为此,请遵循一步一步的步骤:
注册http get方法添加以下行
ViewBag。Name = new SelectList(context.Roles.ToList(), "Name", "Name");
然后HttpPost方法添加以下行:
ViewBag。Name = new SelectList(context.Roles.ToList(), "Name", "Name");
在注册视图中添加以下行:
@Html。DropDownList("UserRoles ViewBag (SelectList)。名称," ")