C# 我无法从表中获取要填充的DropDownList。EF和MVC4
我相信这将在我的HomeController中创建一个列表。但不确定是什么调用它或者它在控制器中的什么位置,可能是第一个addactionresult GET方法旁边C# 我无法从表中获取要填充的DropDownList。EF和MVC4,c#,asp.net-mvc,entity-framework,asp.net-mvc-4,selectlist,C#,Asp.net Mvc,Entity Framework,Asp.net Mvc 4,Selectlist,我相信这将在我的HomeController中创建一个列表。但不确定是什么调用它或者它在控制器中的什么位置,可能是第一个addactionresult GET方法旁边 public static IEnumerable<SelectListItem> items() { using (oesacEntities_compact db = new oesacEntities_compact()) { var qu
public static IEnumerable<SelectListItem> 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();
}
}
我似乎无法将其发送到“添加”视图或从“添加”视图引用它:
<div class="editor=field">
@Html.DropDownListFor(model => model.SponsorID,IEnumerable<SelectListItem> SelectList);
</div>
它在其他编码语言中似乎很简单。我想用大约200个赞助商ID填充一个下拉列表,用于值,BizName用于文本。至少现在是这样。上帝保佑我,当我想用选中的值显示编辑视图时。
谢谢stackoverflow您需要将SelectList传递给您的视图。理想情况下,视图模型应该包含SelectList的属性,但例如,您可以使用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);
}
看法
或者如果已将选择列表指定给ViewBag
@Html.DropDownListFor(model => model.SponsorID, (SelectList)ViewBag.SponsorList);
你到底有什么问题?这不起作用,在这里添加到您的问题是无效的。您必须提供错误消息。我看到的第一个问题是DropDownList for的第二个参数必须是yourClass.items..我不知道如何创建选择列表。model.SponsorList=//创建选择列表的代码我所要做的就是在addrecord视图上下拉选择:selectsponsorid,BizName FROMtblSponsors@JustJohn,这就是函数public static IEnumerable items所做的,但您可以简化它。我会更新我的答案。
@Html.DropDownListFor(model => model.SponsorID, (SelectList)ViewBag.SponsorList);