簡體   English   中英

ASP.NET MVC關系模型錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM