我有一个具有DateTime属性的模型,该属性存储创建对象的日期。
public class UserProfile
{
public int Id { get; set; }
public string Name { get; set; }
[Required]
[DataType(DataType.Date)]
public DateTime DateCreated { get; set; }
}
创建用户配置文件时,将在create方法中设置DateCreated,如下所示:
profile.DateCreated = DateTime.Now.Date;
但是在我的编辑方法中,我不希望更改此DateCreated值,因此我将其从Include属性中删除。
即便如此,即使我不想更新该字段,也会将Date 01值01/01/0001传递给模型。这是导致SqlException的原因,但我不知道如何阻止它。
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit([Bind(Include = "Id,Name")] UserProfile profile)
{
if (ModelState.IsValid)
{
db.Entry(profile).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
return View(profile);
}
我尝试删除[必需]属性但仍未解决。
我通过添加?使DateCreated成为可空的?在DateTime前面
public DateTime? DateCreated { get; set; }
但是当我编辑UserProfile时,这导致DateCreated变为null。