我嘗試在MVC 5中創建,即使ModelState恢復有效,我也會收到驗證錯誤。MVC 5創建驗證錯誤但有效ModelState
錯誤消息
驗證失敗的一個或多個實體。有關更多詳細信息,請參閱「EntityValidationErrors」屬性。
,當我看的消息,它顯示了....
「E」當我看到POST不會在目前情況下
存在名稱數據,創建的模型中填寫了所有必填字段。我注意到模型ID
已分配到0
。我不確定這是否是錯誤,或者是否應該爲ID傳遞一個零。
問題是什麼?
WosController.cs
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Create([Bind(Include = "id,woNumber,woDescription,dueDate,qty,item_id,releaseDate,parentWO_id,wip_id")] Wo wo)
{
if (ModelState.IsValid)
{
db.Wos.Add(wo);
await db.SaveChangesAsync();
return RedirectToAction("Index");
}
return View(wo);
}
Wo.cs
public partial class Wo
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public Wo()
{
this.WoParts = new HashSet<WoPart>();
this.WoStatuses = new HashSet<WoStatus>();
}
public int id { get; set; }
public string woNumber { get; set; }
public string woDescription { get; set; }
public Nullable<System.DateTime> dueDate { get; set; }
public string qty { get; set; }
public Nullable<int> item_id { get; set; }
public Nullable<System.DateTime> releaseDate { get; set; }
public string status { get; set; }
public Nullable<int> parentWO_id { get; set; }
public int wip_id { get; set; }
public Nullable<int> part_id { get; set; }
public virtual Item Item { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<WoPart> WoParts { get; set; }
public virtual Wo woParentWO { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<WoStatus> WoStatuses { get; set; }
public virtual Part Part { get; set; }
public virtual Wip Wip { get; set; }
}
*獲取驗證錯誤* ..錯誤是什麼? –
你的'Wo'類是什麼樣的?帶有該錯誤消息的 – KSib
..它如何工作?什麼是'e'?那應該是編譯時錯誤,而不是運行時錯誤?爲了更好地描述錯誤,爲什麼不嘗試'try-catch塊'並捕獲異常......然後當你調試它時,它會告訴你到底發生了什麼。 –