我正在ASP.NET MVC5中构建一个小的CRUD应用程序。 我使用自动生成的EF模型,而不是自己的模型。 EF访问的表(名为“tablex”)具有DateTime值(名为“inserted”)。
控制器:
// Show edit
public async Task<ActionResult> Edit(int? id)
{
tablex x = await db.tablex.FindAsync(id);
return View(x);
}
// Edit
public async Task<ActionResult> Edit([Bind(Include = "id,...,updated")] tablex x)
{
if (ModelState.IsValid)
{
x.inserted = DateTime.Now;
db.Entry(x).State = EntityState.Modified;
await db.SaveChangesAsync();
return RedirectToAction("Index");
}
return View(x);
}
这是我缩短的控制器。如您所见,无论如何我都覆盖了我的DateTime字段。
查看:
@model DatabaseEF.Models.tablex
@using (Html.BeginForm())
{
<div....> //more fields
<div ...>
@Html.Label("Inserted ", ...)
<div ...>
@Html.EditorFor(model => model.inserted, ...)
@Html.ValidationMessageFor(model => model.inserted, "", ...)
</div>
<input type="submit" value="Save" ... />
</div>
}
有了这个,我的EditorFor-Textbox显示日期,如“28.05.2015 17:12:17”(德语格式)。按“保存”时,视图会警告该字段为日期。将值更改为例如“2010-10-10”完美无缺。
现在我找到了一些注释模型“DataType(DataType.Date)]”的解决方案。但由于我的模型是由EF自动生成的,我正在寻找一种可行的解决方案。
有人在那里为我提供帮助吗?