填充ASP.NET MVC DropDownList

好吧,我一直在谷歌search几个小时,尝试一切,不能得到任何工作。 我正在使用夏普体系结构学习MVC,并已经创build了一些用于创buildClient对象的基本表单。 我想填写状态下拉列表与美国国家列表,并让用户从列表中select。 我能够填充列表并获取值(保存客户端),但是当我去编辑客户端时,客户端的当前状态没有被选中。 我已经在SelectList中设置了选定的值:

<li> <label for="Client_StateProvince">StateProvince:</label> <div> <%= Html.DropDownListFor(c=>c.Client.StateProvince, new SelectList(Model.StateProvinces, "id", "Name", Model.Client.StateProvince), "-- Select State --")%> </div> <%= Html.ValidationMessage("Client.StateProvince")%> </li> 

这似乎不够好。 我错过了什么?

 <%= Html.DropDownListFor(c => c.Client.StateProvince.Id, new SelectList(Model.StateProvinces, "id", "Name", Model.Client.StateProvince), "-- Select State --")%> 

这样做。

希望这可以帮助别人。

〜利

为我工作完美thanx! 我用它来设置子类别上的父关系:

 <%= Html.DropDownListFor( model => model.Category.ParentId, new SelectList(Model.Categories, "CategoryId", "Name", Model.Categories.Where(x => x.CategoryId == Model.Category.ParentId).Single()))%> 

吉荣

我这样做了。 效果很好。

调节器

 IFarmModelInterface service2 = new FarmModelRepository(); ViewData["Farms"] = new SelectList(service2.GetFarmNames(), "id", "FarmName", "XenApp"); 

视图

 <%: Html.DropDownListFor(m => m.Farm, (ViewData["Farms"] as SelectList)) %> 
 public ActionResult AllUsers() { List<Users> users = userRep.GetUsers(); var listUsers = (from u in users.AsEnumerable() select new SelectListItem { Text = u.UserName, Value = u.UserId.ToString(), Selected = (u.UserId==6) }).AsEnumerable(); ViewBag.ListItems = listUsers; //ViewBag.SelectedItem = 2; return View(); } 

在AllUsers.cshtml中

 <p>@Html.DropDownList("ListItems")</p> 
 <%= Html.DropDownListFor(c => c.Client.StateProvince, new SelectList(Model.StateProvinces, "Id", "Name")) %> 

并重写ToString()为StateProvince返回Id,即:

 return Id.ToString(); 

这工作,但不是一个完美的解决scheme…

丹尼斯

 public ActionResult AllUsers() { List<Users> users = userRep.GetUsers(); var listUsers = (from u in users.AsEnumerable() select new SelectListItem { Text = u.UserName, Value = u.UserId.ToString(), Selected = (u.UserId==6) }).AsEnumerable(); // ViewBag.ListItems = listUsers; ViewData["tempEmpList"]=listUsers; return View(); } 

填充下拉菜单

@Html.DropDownList("SelectedEmployee", new SelectList((IEnumerable) ViewData["tempEmpList"], "Id", "Name"))

这是查看 – MVC控制器

 @Html.DropDownListFor(m => m.Entity, new ABC.Models.DropDownPopulate().MyMethod, new { @class = "form-control input-inline input-medium" }) 

MyMethod获取数据列表绑定使用SelectListItems下拉菜单

  public List<SelectListItem> MyMethod { get { List<SelectListItem> dropdownList = new List<SelectListItem>(); var items = new DropDown_Bl().GetAll(); foreach (var item in items) { SelectListItem dropdownItem = new SelectListItem(); dropdownItem.Value = item.RnID.ToString(); dropdownItem.Text = item.Description; dropdownList.Add(dropdownItem); } dropdownList.Insert(0, new SelectListItem() { Text = "Please Select", Value = "", Selected = true }); return dropdownList; } } 

Dropdown_Bl中的GetAll方法 – 用于从数据库获取数据列表

  public List<My_Table> GetAll() { var Items = _Context.MyRepository.GetMany(q => q.Area == "ASD").ToList(); return Items ; }