在MVC 5中从模型/数据库填充下拉列表
本文关键字:数据库 填充 下拉列表 模型 MVC | 更新日期: 2023-09-27 18:18:48
为了找到解决以下问题的方法,我已经搜索了将近3天。我只是想在RegisterViewModel (Identity)
中加入一个DropDownList
。在用户注册时,我需要提示Gender
。
我已经在表中插入了以下项目。
Code = F
Definition = Female
-------------------
Code = M
Definition = Male
当我直接在GenderDDController内生成下拉列表时,它的视图可以完美地工作,但只要我在RegisterViewModel
,我就没有机会,因为我不能在Register.cshtml (View)
中引用多个模型。
我还应该指出我是MVC的新手,我敢肯定这是我现在看起来很困惑的唯一原因。
GenderDD | Model
public partial class GenderDD
{
public int Id { get; set; }
[StringLength(1)]
public string Code { get; set; }
[StringLength(50)]
public string Definition { get; set; }
public DateTime? CreateDate { get; set; }
[StringLength(50)]
public string CreatedBy { get; set; }
public bool Deleted { get; set; }
public DateTime? UpdateDate { get; set; }
[StringLength(50)]
public string UpdatedBy { get; set; }
}
RegisterViewModel | Controller
[AllowAnonymous]
public ActionResult Register()
{
ViewData["GenderList"] =
Enum.GetValues(typeof (GenderDD))
.Cast<GenderDD>()
.Select(c => new SelectListItem {Text = c.ToString(), Value = c.ToString()});
return View();
}
你可以在你的Register.cshtml (View)
模型中有多个类
简单地创建一个基类,如下所示,并将其引用为该视图的Model,这将使您可以访问两个模型。
Public Class RegisterViewModel()
{
public ModelName ModelName {get;set;}
public ModelName2 ModelName2 {get;set;}
}
使用viewbag传递如下数据:你可以输入controller
var genderlist = new List<SelectListItem>
{
new SelectListItem { code = "M", name = "Male" },
new SelectListItem { code = "F", name = "Female" }
};
viewbag.genderlist=genderlist;
你可以写在view
@Html.DropDownListFor(model => model.gender, new SelectList(ViewBag.genderlist, "code", "name"))