C# 我无法从表中获取要填充的DropDownList。EF和MVC4

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

我相信这将在我的HomeController中创建一个列表。但不确定是什么调用它或者它在控制器中的什么位置,可能是第一个addactionresult GET方法旁边

    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);