ASP.Net MVC 控制@Html.DisplayFor日期显示格式
在做一個舊表的查詢頁時,遇到一個問題:
字段在db里存儲的是DATETIME,但保存的值只有日期,沒有時間數據,比如2018/2/26 0:00:00,顯示出來比較難看,
當然也可以做一個ViewModel,在字段上添加Attribute定義來更改名稱和顯示名稱,如下:
[Display(Name = "建立日期:")] [DisplayFormat(DataFormatString = "{0:yyyy年MM月dd日}")] public virtual System.DateTime CreateTime{ get; set;}
這樣顯示出來的是:2018年2月26日。
但這樣對于一個舊表來說,太過麻煩,倒不如HtmlHelper的Template來得簡便。
網上找了一些方法卻都是錯誤的,經過修改實驗成功,以下步驟是正確的:
- 在 Views/Shared 文件夾建立 DisplayTemplates;(約定的名稱)
- 創建 MyDate.cshtml 視圖;(文件名即為約定的TemplateName)
- 視圖中的代碼如下:
@model System.DateTime @Model.ToString("yyyy/MM/dd")
OK了,在需要轉換的地方添加 TemplateName 就可以了:
<td> @Html.DisplayFor(modelItem => item.Date,"MyDate") </td>
顯示結果: 2018/02/26
同樣約定的還有 EditorTemplates.