You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MVC C#中如何让@Html.DisplayFor仅显示DateTime字段的日期部分

解决MVC C#视图中DateTime仅显示日期部分的问题

嗨,这个场景我太熟悉了——既要保留DateTime类型满足其他业务逻辑,又要在视图里只显示日期部分,给你几个实用的方案:

  • 方案一:给模型属性添加数据注解(推荐,统一控制格式)
    虽然不能修改属性的DateTime类型,但可以给它加上DisplayFormat特性来指定显示格式:

    [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = false)]
    public DateTime fec_ini { get; set; }
    

    解释一下:

    • {0:dd/MM/yyyy}是指定日期格式为“日/月/年”
    • ApplyFormatInEditMode = false表示在编辑模式下(比如用EditorFor)还是保留完整的DateTime格式,如果需要编辑时也显示短日期,把这个值改成true就行
      之后视图里依然用@Html.DisplayFor(model => model.fec_ini),就能自动显示成29/04/2018了
  • 方案二:直接在视图中格式化(快速临时解决)
    如果只是这个视图需要特殊格式,不想改动模型的话,可以直接在视图里对DateTime对象调用ToString方法指定格式:

    @Html.DisplayFor(model => model.fec_ini.ToString("dd/MM/yyyy"))
    

    或者更简洁的写法:

    @Model.fec_ini.ToString("dd/MM/yyyy")
    
  • 方案三:使用DisplayTemplate(多视图复用格式)
    如果很多视图都需要显示这种格式的日期,可以创建一个通用的显示模板:

    1. 在Views/Shared/DisplayTemplates目录下新建一个名为ShortDate.cshtml的视图文件
    2. 写入以下内容:
      @model DateTime
      @Model.ToString("dd/MM/yyyy")
      
    3. 在需要的视图里调用:
      @Html.DisplayFor(model => model.fec_ini, "ShortDate")
      

    这样所有引用这个模板的地方都会统一显示短日期,后续要改格式只需要修改模板文件就行

内容的提问来源于stack exchange,提问作者Pablo Tobar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:06:15