EntityValidationErrors
有一段程式碼如下
public ActionResult Create([Bind(Include = "Id,type,date,title,context")] ACTICLE aCTICLE)
{
if (ModelState.IsValid)
{
db.ACTICLESet.Add(aCTICLE);
db.SaveChanges();
return RedirectToAction("Index");
}
return View();
}
例如在測試時候出現問題
那要如何偵錯呢?
走,先點開View Detail去看問題
由此可知,從Message屬性可以看出問題所在
但其實更詳細資料應該要使用
try
{
}
catch (Exception ex)
{
throw ex;
}
但我們不用Exception這麼大的類別
我們只取用System.Data.Entity.Validation.DbEntityValidationException類別就好
public ActionResult Create([Bind(Include = "Id,type,date,title,context")] ACTICLE aCTICLE)
{
try
{
if (ModelState.IsValid)
{
db.ACTICLESet.Add(aCTICLE);
db.SaveChanges();
return RedirectToAction("Index");
}
return View();
}
catch (Exception ex)
{
System.Data.Entity.Validation.DbEntityValidationException DbEntityValidationException = (System.Data.Entity.Validation.DbEntityValidationException)ex;
throw DbEntityValidationException;
}
}
使用DbEntityValidationException.EntityValidationErrors.FirstOrDefault().ValidationErrors.FirstOrDefault().ErrorMessage;路徑查看,
原來錯誤為type欄位是必要項
參考資料: