C# 没有类型为';IEnumerable<;选择列表项>';这是关键

C# 没有类型为';IEnumerable<;选择列表项>';这是关键,c#,asp.net-mvc,C#,Asp.net Mvc,我试图从数据库表中填充一个dropdow列表 我得到了这个错误: 没有键为“QuartierId”的“IEnumerable”类型的ViewData项 描述:不存在例外情况,因为这是网络行为要求执行的最新产品。控制桩的浇筑轨迹,并根据原始代码提供信息 Détails de l'exception:System.InvalidOperationException:没有具有键“QuartierId”的“IEnumerable”类型的ViewData项 这里是我的模型“四分位集”: public

我试图从数据库表中填充一个dropdow列表

我得到了这个错误:

没有键为“QuartierId”的“IEnumerable”类型的ViewData项

描述:不存在例外情况,因为这是网络行为要求执行的最新产品。控制桩的浇筑轨迹,并根据原始代码提供信息

Détails de l'exception:System.InvalidOperationException:没有具有键“QuartierId”的“IEnumerable”类型的ViewData项

这里是我的模型“四分位集”:

   public partial class Quartier
{
    public Quartier()
    {
        this.Publication = new HashSet<Publication>();
    }

    public int Quartier_Id { get; set; }
    public string Quartier_Libelle { get; set; }

    public virtual ICollection<Publication> Publication { get; set; }
    public virtual Ville Ville { get; set; }
}
我的观点是:

       @Html.DropDownList("QuartierId", String.Empty)

ViewBag
仅在将其设置为其操作视图的操作中可用

ViewBag
中设置后,您将重定向到另一个操作,由于该操作,
ViewBag
再次设置为
null

您需要在ListOffreLocation操作中添加以下行,而不是CreateOffreLocation

ViewBag.QuartierId = new SelectList(db.QuartierSet, "Quartier_Id", "Quartier_Libelle");

或者只添加这一行ViewBag.QuartierId=新的SelectList(db.QuartierSet,“Quartier_Id”,“Quartier_Libelle”);对于一个名为ListOffreLocation的新操作,只需返回视图就可以了。我的“ListOffreLocation”返回位置优惠列表,我不明白为什么我必须将viewBag放在那里,我不需要那里的下拉列表,public ActionResult ListOffreLocation(){返回视图(db.PublicationSet.OfType().ToList());}您在
ListOffreLocation
action right的视图中有dropdownlist“ListOffreLocation”是一个从我的数据库返回注册列表的操作,在创建操作中,我需要从一个名为“quartier”的小表中填充一个下拉列表有了街道的名字,在确认了我重新导航的创作形式“ListFoFr地点”视图…希望你能明白我的意思!但是在创建动作中,你不能返回视图,尽管可以说是一个很好的答案,考虑添加一个描述给它。谢谢。
ViewBag.QuartierId = new SelectList(db.QuartierSet, "Quartier_Id", "Quartier_Libelle");
@Html.DropDownList((SelectListItem)ViewBag.QuartierId, String.Empty)