如何在带有模型数据注释的模板编辑器中显示日期格式

本文关键字:编辑器 显示 格式 日期 注释 数据 模型 | 更新日期: 2023-09-27 18:37:26

我为 DateTime 类型创建了一个 EditorFor 模板。 如果没有值 (0001-01-01),则使用当前日期。 问题是它显示日期和时间。 我可以将DateTime.Now.ToString()更改为DateTime.Now.ToString("yyyy-MM-dd")但是有没有办法在模型中使用[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]这样的注释强制执行它?

DateTime.cshtml

@model DateTime
@{
    var validationAttributes = Html.GetUnobtrusiveValidationAttributes("");
    <div class="input-control text full-size" data-role="datepicker">
        @Html.TextBox("", ViewData.Model.Year > 1 ? ViewData.Model.Date.ToString() : DateTime.Now.ToString(), new RouteValueDictionary(validationAttributes))
        <button class="button"><span class="mif-calendar"></span></button>
    </div>
}

MyViewModel.cs

namespace MyProject.ViewModels
{
    public class NewRequestViewModel
    {
        public NewRequestViewModel()
        {
        }
        public int ID { get; set; }
        [Required]
        [StringLength(255)]
        public string Title { get; set; }
        [Required]
        [DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
        public DateTime StartDate { get; set; }
    }
}

MyView.cshtml

@Html.EditorFor(model => model.StartDate)

如何在带有模型数据注释的模板编辑器中显示日期格式

如果你不需要时间数据,你可以更改表列类型。

在替换或创建数据表列时,可以使用此代码。(你必须添加你的项目 dbContext 类)

protected override void OnModelCreating(DbModelBuilder modelbuilder)
{
   modelbuilder.Entity<TableName>().Property(h => h.StarDate).HasColumnType("Date").IsOptional();
}