用于DisplayFor,EditorFor和HiddenFor HTML帮助程序的MVC控制器类中的DateTime

时间:2016-08-13 09:25:24

标签: c# sql-server asp.net-mvc datetime

我在SQL Server中有一个名为 date_updated 的列。在MVC应用程序的/Controllers/Example.cs中,我有以下内容:

    private DateTime _date;
    public DateTime date_updated
    {
        get
        {
            return _date;
        }
        set
        {
            _date = DateTime.Now;
        }
    }

在/Views/Example/Edit.cshtml,我有一个DisplayFor,EditorFor和HiddenFor HTML助手。

@Html.DisplayFor(model => model.date_updated)
@Html.EditorFor(model => model.date_updated)
@Html.HiddenFor(model => model.date_updated)

假设今天的日期是2016年8月13日,SQL中ID =“1”的记录的last_updated =“07/01/2016”。 DisplayFor和EditorFor HTML帮助程序将显示今天的日期(2016年8月13日),HiddenFor HTML帮助程序将在SQL中显示日期(2016年1月7日)。

  • DisplayFor = 08/13/2016
  • EditorFor = 08/13/2016
  • HiddenFor = 07/01/2016

我非常希望DisplayFor,EditorFor和HiddenFor HTML帮助程序都能在SQL中显示日期(07/01/2016)。我不确定如何让DisplayFor和EditorFor HTML助手从SQL中显示 date_updated

1 个答案:

答案 0 :(得分:0)

这是我提出的一个解决方案,以防它帮助其他人。 SQL中有2列:

  • date_published
  • 日期date_updated

编辑记录时,目标是将当前DateTime保留在SQL中以用于date_published,并将SQL中的DateTime更新为date_updated到当前DateTime。

我修改了/Controllers/Example.cs文件以获得以下内容。

[Required]
[DisplayFormat(DataFormatString = "{0:MM/dd/yyyy}", ApplyFormatInEditMode = true)]
public DateTime date_published { get; set; }

[Required]
[DisplayFormat(DataFormatString = "{0:MM/dd/yyyy}", ApplyFormatInEditMode = true)]
public DateTime date_updated { get; set; }

然后我将HiddenFor HTML帮助器添加到date_published和date_updated列的/ View / Example / Edit文件中。我将date_updated的值设置为System.DateTime.Now。

@Html.HiddenFor(model => model.date_published)
@Html.HiddenFor(model => model.date_updated, new { @Value=System.DateTime.Now })

查看www.example.com/App/Edit/1的来源将包含date_published和date_updated列的隐藏HTML标记。 date_published隐藏标记包含SQL的DateTime值。 date_updated标记包含2个值,一个用于SQL的DateTime,另一个用于System.DateTime.Now。虽然在date_updated标记中包含2个值并不理想,但它实现了目标。 date_published将保留SQL的DateTime,而date_updated将SQL中的记录更新为当前的DateTime。

<input id="date_published" name="date_published" type="hidden" value="7/01/2016 1:23:27 PM" />
<input Value="08/13/2016 13:50:42" id="date_updated" name="date_updated" type="hidden" value="7/01/2016 1:23:27 AM" />