[英]ASP.NET MVC Relational Model Error
我有兩個關系模型,第一個是Teacher.cs
public class Teachers
{
[Key]
public int TeacherID { get; set; }
public string TeacherName { get; set; }
public string TeacherLname { get; set; }
public int DepartmentID { get; set; }
public string Image { get; set; }
public Department Department { get; set; }
}
第二個是Department.cs
public int DepartmentID { get; set; }
public string DepartmentName { get; set; }
public string Image { get; set; }
public List<Teachers> Teachers { get; set; }
創建新記錄時,我為老師選擇一個部門名稱,這很好。 但是,當我想刪除記錄時,會出現這樣的錯誤
The ViewData item that has the key 'DepartmentID' is of type 'System.Int32' but must be of type 'IEnumerable<SelectListItem>'.
Line 32: @Html.DropDownList("DepartmentID", String.Empty)
我不明白我該怎么辦。 你能幫助我嗎? 非常感謝
TeacherController編輯:
//
// GET: /Teachers/Delete/5
[Authorize(Roles = "A")]
public ActionResult Delete(int id = 0)
{
Teachers teachers = db.Teachers.Find(id);
if (teachers == null)
{
return HttpNotFound();
}
return View(teachers);
}
//
// POST: /Teachers/Delete/5
[Authorize(Roles = "A")]
[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
public ActionResult DeleteConfirmed(int id)
{
Teachers teachers = db.Teachers.Find(id);
db.Teachers.Remove(teachers);
db.SaveChanges();
return RedirectToAction("Index");
}
當您將空字符串傳遞給Html.DropDownList()
它將查找要從ViewData集合中的第一個參數填充下拉列表的項目列表。 但是,該集合中已經有一個Int32類型的項目。
這是使用Html.DropDownList()
而不是使用強類型模型和Html.DropDownListFor()
時發生的許多令人困惑的方案之一
我建議你這樣做:
@Html.DropDownListFor(x => x.DepartmentID, Model.Departments)
您將需要使用Departments對象填充模型,該對象是Departments的列表
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.