我正在尝试从数据库表填充下拉列表,
我收到了这个错误:
没有类型为'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)
答案 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)