没有类型&#39; IEnumerable <selectlistitem>&#39;的ViewData项目。有键</selectlistitem>

时间:2014-05-15 15:03:21

标签: c# asp.net-mvc

我正在尝试从数据库表填充下拉列表,

我收到了这个错误:

  
    

没有类型为'IEnumerable'的ViewData项具有键'QuartierId'。

         

描述:Une例外非géréess'estproduite au moment de l'exécutiondelarequêteWebactuelle。 Contrôlezlatrace de la pile pour plus d'informations sur l'erreur et son origine dans le code。

         

Détailsdel'exception:System.InvalidOperationException:没有类型为'IEnumerable'的ViewData项具有键'QuartierId'。

  

这里我的模型“QuartierSet”

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

我的控制器端:

 public ActionResult CreateOffreLocation(OffreLocation offreLocation)
    {
        try
        {

            ViewBag.QuartierId = new SelectList(db.QuartierSet, "Quartier_Id", "Quartier_Libelle");
            db.PublicationSet.Add(offreLocation);
            db.SaveChanges();
            return RedirectToAction("ListOffreLocation");

        }
        catch
        {
            return RedirectToAction("Error");
        }
    }

我的观点:

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

2 个答案:

答案 0 :(得分:1)

ViewBag仅适用于您将其设置为其操作视图的操作。

ViewBag进行设置后,您将重定向到另一个操作,因为ViewBag再次设置为null

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

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

答案 1 :(得分:0)

@Html.DropDownList((SelectListItem)ViewBag.QuartierId, String.Empty)