如何在带有EF的ASP.NET MVC5中使用带有DateTime的EditorFor?

时间:2015-05-29 13:39:00

标签: c# entity-framework datetime asp.net-mvc-5 editorfor

我正在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自动生成的,我正在寻找一种可行的解决方案。

有人在那里为我提供帮助吗?

0 个答案:

没有答案