我在SQL Server中有一个名为的日期date_updated。在MVC应用程序,在/Controllers/Example.cs,我有以下几点:MVC控制器类中的DateTime DisplayFor,EditorFor和HiddenFor HTML帮助程序
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 =“2016年7月1日”。 DisplayFor和EditorFor HTML助手将显示今天的日期(08/13/2016),HiddenFor HTML助手将在SQL中显示日期(07/01/2016)。
- DisplayFor = 2016年8月13日
- EditorFor = 2016年8月13日
- HiddenFor = 2016年7月1日
我非常喜欢DisplayFor,EditorFor和HiddenFor HTML助手全部在SQL中显示日期(07/01/2016)。我不知道如何让DisplayFor和EditorFor HTML帮助程序从SQL中显示date_updated。
在这种情况下,你为什么有这样的属性setter'_date = DateTime.Now;'? – Rahul
我已经放置_date = DateTime.Now;在setter属性内部,以便在导航到www.example.com/Example/Edit/1并单击Save时,SQL中的DateTime更新为当前日期时间。有没有更适合这个目标的其他方法? – JeremyCanfield
你声称是不可能的(除非你省略了一些相关的代码)。由于您无法设置其值,所以'date_updated'的值只能返回'DateTime.Now'(或'DateTime.MinValue')。并且'EditorFor()'和'HiddenFor()'在它们将显示的内容之间没有区别(除非您为'DateTime'类型定制了'EditorTemplate')并且除非您更改了控制器中属性的值在'ModelState'值初始化后,将与'DisplayFor()' –