我收到错误
一个或多个实体的验证失败。有关更多详细信息,请参阅"实体验证错误"属性。
尝试在简单的创建页面上提交时。下面是控制器代码和型号。我无法弄清楚问题是什么。
除 ID 之外的所有字段在 SQL 中都可为空。我知道问题来自字段分辨率和技术人员 - 如果我将它们放在创建表单上(他们现在不在上面,因为我不希望他们填写(提交工作正常 有什么想法吗?
谢谢 EB
控制器:
public ActionResult Create()
{
HelpDesk b1 = new HelpDesk();
return View(b1);
}
[HttpPost]
public ActionResult Create(HelpDesk model)
{
db.HelpDesks.Add(model);
db.SaveChanges();
return RedirectToAction("Index");
}
型:
public int ID { get; set; }
[DisplayName("Requested By")]
public string RequestedBy { get; set; }
[Required(ErrorMessage = "Requested By Required.")]
public string Request { get; set; }
[Required(ErrorMessage = "Request Required.")]
public string Resolution { get; set; }
[DisplayName("Assigned To")]
public string Technician { get; set; }
public string Status { get; set; }
public string CreatedBy { get; set; }
public string ModfiedBy { get; set; }
public Nullable<System.DateTime> CreateDate { get; set; }
public Nullable<System.DateTime> ModifiedDate { get; set; }
除 ID 之外的所有字段在 SQL 中都可为空。
这不是您告诉实体框架的内容,而是引发错误的原因。 (而且,正如错误所指示的那样,您确实应该检查异常或内部异常上的EntityValidationErrors
属性,以获取有关错误的特定信息。 您告诉实体框架这些字段是必需的:
[Required(ErrorMessage = "Requested By Required.")]
public string Request { get; set; }
[Required(ErrorMessage = "Request Required.")]
public string Resolution { get; set; }
(从属性上的消息来看,您似乎混淆了一些属性属性。
我知道问题来自字段分辨率和技术人员 - 如果我将它们放在创建表单上(他们现在不在上面,因为我不希望他们填写(,提交工作正常
听起来这就是问题所在。Resolution
标记为必需,而您不包括它。 要么包括它,要么不让它成为必需的。