Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在带有模型数据注释的EditorFor模板中显示日期格式_C#_Asp.net Mvc_Datetime_Razor_View - Fatal编程技术网

C# 如何在带有模型数据注释的EditorFor模板中显示日期格式

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类型创建了一个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>
}
@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]
属性)。