没有类型为’IEnumerable ‘的ViewData项具有键’GradingId’
我试图让一个下拉列表适用于正在评分的用户。 每个用户可以有多个评分。 因此,当我创建一个新的成绩时,我想要一个下拉列表来指定哪个用户将获得成绩。
我一直在:
没有类型为’IEnumerable’的ViewData项具有键’GradingId’。
我已经看了很多其他问题,但我无法解决我需要在控制器,视图或模型中更改的内容。
GradingController.cs
public ActionResult Create() { return View(); } // POST: Gradings/Create [HttpPost] [ValidateAntiForgeryToken] public ActionResult Create([Bind(Include = "GradingId,Eye,Cheek,Mouth,RestSymmetryTotal,RestSymmetryScore,VolForeheadWrinkle,VolGentleEyeClosure,VolOpenMouthSmile,VolSnarl,VolLipPucker,VolSymmetryTotal,VolSymmetryScore,SynForeheadWrinkle,SynGentleEyeClosure,SynOpenMouthSmile,SynSnarl,SynLipPucker,SynkinesisScore,CompositeScore")] Grading grading) { if (ModelState.IsValid) { grading.GradeDate = DateTime.Now; db.Gradings.Add(grading); db.SaveChanges(); return RedirectToAction("Index"); } ViewBag.GradingId = new SelectList(db.Gradings, "GradingId", "CodeName"); return View(grading); } // GET: Gradings/Edit/5 public ActionResult Edit(int? id) { if (id == null) { return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } Grading grading = db.Gradings.Find(id); if (grading == null) { return HttpNotFound(); } ViewBag.GradingId = new SelectList(db.Gradings, "GradingId", "CodeName"); return View(grading); } // POST: Gradings/Edit/5 [HttpPost] [ValidateAntiForgeryToken] public ActionResult Edit([Bind(Include = "GradingId,Eye,Cheek,Mouth,RestSymmetryTotal,RestSymmetryScore,VolForeheadWrinkle,VolGentleEyeClosure,VolOpenMouthSmile,VolSnarl,VolLipPucker,VolSymmetryTotal,VolSymmetryScore,SynForeheadWrinkle,SynGentleEyeClosure,SynOpenMouthSmile,SynSnarl,SynLipPucker,SynkinesisScore,CompositeScore")] Grading grading) { if (ModelState.IsValid) { db.Entry(grading).State = EntityState.Modified; db.SaveChanges(); return RedirectToAction("Index"); } ViewBag.GradingId = new SelectList(db.Gradings, "GradingId", "CodeName"); return View(grading); }
Create.cshtml(查看)
@model FaceToFace.Model.Grading Create
@using (Html.BeginForm()) { @Html.AntiForgeryToken() @Html.LabelFor(model => model.User.CodeName, "User Name") @Html.DropDownList("GradingId", String.Empty)