C# 如何在带有模型数据注释的EditorFor模板中显示日期格式
我为DateTime类型创建了一个EditorFor模板。如果没有值(0001-01-01),则使用当前日期。问题是它显示了日期和时间。我可以将C# 如何在带有模型数据注释的EditorFor模板中显示日期格式,c#,asp.net-mvc,datetime,razor,view,C#,Asp.net Mvc,Datetime,Razor,View,我为DateTime类型创建了一个EditorFor模板。如果没有值(0001-01-01),则使用当前日期。问题是它显示了日期和时间。我可以将DateTime.Now.ToString()更改为DateTime.Now.ToString(“yyyy-MM-dd”),但是有没有一种方法可以在模型中使用类似于[DisplayFormat(DataFormatString=“{0:yyyy-MM-dd}”,ApplyFormatInEditMode=true)]的注释来强制执行它 DateTime.
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>
}
@Html.EditorFor(model => model.StartDate)
MyView.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>
}
@Html.EditorFor(model => model.StartDate)
如果不需要时间数据,可以更改表列类型
在替换或创建数据表列时,可以使用此代码。
(必须添加项目dbContext类)
模型创建时受保护的覆盖无效(DbModelBuilder modelbuilder)
{
modelbuilder.Entity().Property(h=>h.StarDate).HasColumnType(“日期”).isoOptional();
}
在将模型传递到视图之前,为什么不在控制器中设置StartDate
的值呢?而且,在模板中使用TextBox()
并不意味着将忽略您的DisplayFormat
属性(以及任何[DataType]
属性)。