我在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()' –