我无法从表中填充DropDownList。 EF和MVC4
我相信这会在我的HomeController中创建一个列表。 但不确定是什么调用它或它在Controller旁边的位置可能是第一个Add ActionResult(GET方法)。
public static IEnumerable items() { using (oesacEntities_compact db = new oesacEntities_compact()) { var query = from s in db.tblSponsors select new { s.SponsorID, s.BizName }; return query.AsEnumerable() .Select(x => new SelectListItem { Value=x.SponsorID.ToString(), Text = x.BizName }).ToList(); } }
我似乎无法将其发送到添加视图或从添加视图引用它:
@Html.DropDownListFor(model => model.SponsorID,IEnumerable SelectList);
在其他编码语言中似乎很简单。 我想填充一个下载大约有200个赞助商ID的下拉值,BizNames用于文本。 至少现在。 当我想要显示具有所选值的编辑视图时,上帝帮助我。 谢谢你的stackoverflow
您需要将SelectList
传递给您的视图。 理想情况下,您的视图模型应包含SelectList
的属性,但您可以(yuk)使用ViewBag
查看模型
public class MyViewModel { public int SponsorID { get; set; } // other properties public SelectList SponsorList { get; set; } }
调节器
public ActionResult SomeThing() { MyViewModel model = new MyViewModel(); // assign the select list var sponsors = from s in db.tblSponsors; model.SponsorList = new SelecList(sponsors, "SponsorID", "BizName"); return View(model); }
视图
@Html.DropDownListFor(model => model.SponsorID, Model.SponsorList);
或者如果您将选择列表分配给ViewBag
@Html.DropDownListFor(model => model.SponsorID, (SelectList)ViewBag.SponsorList);