如何在带有模型数据注释的模板编辑器中显示日期格式
本文关键字:编辑器 显示 格式 日期 注释 数据 模型 | 更新日期: 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();
}