DateTime在MVC控制器类中用于DisplayFor, EditorFor和HiddenFor HTML助手

本文关键字:EditorFor HiddenFor 助手 HTML DisplayFor 用于 MVC 控制器 DateTime | 更新日期: 2023-09-27 18:02:12

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

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

/编辑/视图/例子。cshtml,我有一个DisplayFor, EditorFor,和HiddenFor HTML的帮助。

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

假设今天的日期是08/13/2016,SQL中ID="1"的记录last_updated="07/01/2016"。DisplayFor和EditorFor HTML帮助器将显示今天的日期(08/13/2016),HiddenFor HTML帮助器将在SQL中显示日期(07/01/2016)。

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

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

DateTime在MVC控制器类中用于DisplayFor, EditorFor和HiddenFor HTML助手

这是我想到的一个解决方案,以防对别人有所帮助。SQL中有两列:

  • date_published
  • date_updated

当编辑一条记录时,目标是在SQL中保持date_published的当前日期时间,并将date_updated的SQL中的日期时间更新为当前日期时间。

我修改了/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; }

然后我为date_published和date_updated列添加了HiddenFor HTML帮助器到/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标记中有两个值并不理想,但它实现了目标。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" />