我的模型中有这个字段:
public DateTime ATime{ get; set; }
在创建控制器上,我可以使用datepicker选择日期并成功创建。
但是当我尝试编辑对象时,我在标题中得到了异常。我的编辑代码是默认编辑代码:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit([Bind(Include="AID,ATime")] Project project)
{
if (ModelState.IsValid)
{
db.Entry(project).State = EntityState.Modified;
db.SaveChanges(); // I get exception at this line.
return RedirectToAction("Index");
}
return View(project);
}
如何摆脱这种异常?感谢。
答案 0 :(得分:0)
Datetime2的范围大于datetime。你确定你试图将它设置为适合日期时间范围的新值吗?
(另外,datetime是一种不符合ANSI标准的遗留类型。无论如何,我都会将数据库中的基础类型更改为datetime2。http://blogs.msdn.com/b/cdnsoldevs/archive/2011/06/22/why-you-should-never-use-datetime-again.aspx)
答案 1 :(得分:0)
更改您的模态代码如下: -
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
public DateTime ATime{ get; set; }
日期也应该在以下范围内: 最短日期是:1753年1月1日 最长日期是:9999年12月31日
答案 2 :(得分:0)
我假设您没有特别使用datetime2类型。因此,您可以使用数据注释将日期时间类型分配给模型属性,如下所示。
[DataType(DataType.DateTime)]
public DateTime ATime { get; set; }