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來得簡便。

網上找了一些方法卻都是錯誤的,經過修改實驗成功,以下步驟是正確的:

  1. 在 Views/Shared 文件夾建立 DisplayTemplates;(約定的名稱)
  2. 創建 MyDate.cshtml 視圖;(文件名即為約定的TemplateName)
  3. 視圖中的代碼如下:
@model System.DateTime
@Model.ToString("yyyy/MM/dd")

OK了,在需要轉換的地方添加 TemplateName 就可以了:

<td>
    @Html.DisplayFor(modelItem => item.Date,"MyDate")
</td>

顯示結果: 2018/02/26

同樣約定的還有 EditorTemplates.

原文地址:https://www.cnblogs.com/keepee/p/8479052.html