C# 使用viewmodel从数据库中下拉列表

C# 使用viewmodel从数据库中下拉列表,c#,asp.net-mvc,viewmodel,html.dropdownlistfor,viewbag,C#,Asp.net Mvc,Viewmodel,Html.dropdownlistfor,Viewbag,我正在构建一个ASP.NETMVC4Web应用程序,它允许创建具有角色的用户。有两个角色:管理员和用户。注册时,用户可以通过下拉列表选择新用户的角色。这就是我到目前为止所做的 我的UserViewModel: public class UserModel { [Required] [StringLength(50)] [Display(Name="Username : ")] public string Username { get; set; } [R

我正在构建一个ASP.NETMVC4Web应用程序,它允许创建具有角色的用户。有两个角色:管理员和用户。注册时,用户可以通过下拉列表选择新用户的角色。这就是我到目前为止所做的

我的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

有人帮忙吗?我将非常感激

查看:

@Html.DropDownListFor(m => m.RoleId, (SelectList)ViewBag.Roles )
您的模型中应该有一个RoleId,以保存所选项目。

视图:

@Html.DropDownListFor(m => m.RoleId, (SelectList)ViewBag.Roles )
您的模型中应该有一个RoleId,以保存所选项目。

视图:

@Html.DropDownListFor(m => m.RoleId, (SelectList)ViewBag.Roles )
您的模型中应该有一个RoleId,以保存所选项目。

视图:

@Html.DropDownListFor(m => m.RoleId, (SelectList)ViewBag.Roles )

您的模型中应该有一个RoleId来保存所选项目。

您可以这样使用它

@Html.DropDownList("Roles")

它将为您的ViewBag创建下拉列表

您可以这样使用它

@Html.DropDownList("Roles")

它将为您的ViewBag创建下拉列表

您可以这样使用它

@Html.DropDownList("Roles")

它将为您的ViewBag创建下拉列表

您可以这样使用它

@Html.DropDownList("Roles")

它将为您的ViewBag创建下拉列表

您需要将您的ViewBag项目显式转换为预期类型
(IEnumerable)
,因为
ViewBag是一种动态类型

@Html.DropDownListFor(m => m.RoleId,((IEnumerable<SelectListItem>)ViewBag.Roles))
@Html.DropDownListFor(m=>m.RoleId,((IEnumerable)ViewBag.Roles))

您需要显式地将ViewBag项目转换为预期类型
(IEnumerable)
,因为
ViewBag是一种动态类型

@Html.DropDownListFor(m => m.RoleId,((IEnumerable<SelectListItem>)ViewBag.Roles))
@Html.DropDownListFor(m=>m.RoleId,((IEnumerable)ViewBag.Roles))

您需要显式地将ViewBag项目转换为预期类型
(IEnumerable)
,因为
ViewBag是一种动态类型

@Html.DropDownListFor(m => m.RoleId,((IEnumerable<SelectListItem>)ViewBag.Roles))
@Html.DropDownListFor(m=>m.RoleId,((IEnumerable)ViewBag.Roles))

您需要显式地将ViewBag项目转换为预期类型
(IEnumerable)
,因为
ViewBag是一种动态类型

@Html.DropDownListFor(m => m.RoleId,((IEnumerable<SelectListItem>)ViewBag.Roles))
@Html.DropDownListFor(m=>m.RoleId,((IEnumerable)ViewBag.Roles))

首先,它显示您正在尝试注册帐户。为此,请遵循分步程序:

注册http get方法添加以下行

ViewBag.Name=新选择列表(context.Roles.ToList(),“Name”,“Name”)

然后HttpPost方法添加以下行:

ViewBag.Name=新选择列表(context.Roles.ToList(),“Name”,“Name”)

在register视图中添加以下行:

@Html.DropDownList(“UserRoles”,(SelectList)ViewBag.Name,”)


我希望这能起作用。

首先,它显示您正在尝试注册该帐户。为此,请遵循分步程序:

注册http get方法添加以下行

ViewBag.Name=新选择列表(context.Roles.ToList(),“Name”,“Name”)

然后HttpPost方法添加以下行:

ViewBag.Name=新选择列表(context.Roles.ToList(),“Name”,“Name”)

在register视图中添加以下行:

@Html.DropDownList(“UserRoles”,(SelectList)ViewBag.Name,”)


我希望这能起作用。

首先,它显示您正在尝试注册该帐户。为此,请遵循分步程序:

注册http get方法添加以下行

ViewBag.Name=新选择列表(context.Roles.ToList(),“Name”,“Name”)

然后HttpPost方法添加以下行:

ViewBag.Name=新选择列表(context.Roles.ToList(),“Name”,“Name”)

在register视图中添加以下行:

@Html.DropDownList(“UserRoles”,(SelectList)ViewBag.Name,”)


我希望这能起作用。

首先,它显示您正在尝试注册该帐户。为此,请遵循分步程序:

注册http get方法添加以下行

ViewBag.Name=新选择列表(context.Roles.ToList(),“Name”,“Name”)

然后HttpPost方法添加以下行:

ViewBag.Name=新选择列表(context.Roles.ToList(),“Name”,“Name”)

在register视图中添加以下行:

@Html.DropDownList(“UserRoles”,(SelectList)ViewBag.Name,”)


我希望这能起作用。

这对你很有帮助。。。去这对你很有帮助。。。去这对你很有帮助。。。去这对你很有帮助。。。是的,确实,通过角色对象,我可以得到RoleId,它可以工作,谢谢!是的,确实,通过角色对象,我可以得到RoleId,它可以工作,谢谢!是的,确实,通过角色对象,我可以得到RoleId,它可以工作,谢谢!是的,确实,通过角色对象,我可以得到RoleId,它可以工作,谢谢!不要只是在这里发布代码,解释一下,让未来的用户能够理解better@FabioAntunes,添加了解释不要只是在这里发布代码,解释它以便将来的用户能够理解它better@FabioAntunes,添加了解释不要只是在这里发布代码,解释它以便将来的用户能够理解它better@FabioAntunes,添加的解释不要只是在这里发布代码,解释它以便将来的用户能够理解它better@FabioAntunes,补充解释