我的剃刀表单代码

<div class="form-group">
    @Html.LabelFor(model => model.achPayDate, htmlAttributes: new { @class = "control-label col-md-7" })
    @Html.DisplayFor(model => model.achPayDate, new {@class="date"})
</div>


我的cs代码

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


当achPayDate = 0001-01-01T00:00:00时,显示01/01/0001,我想取消日期为空白。我怎样才能做到这一点??

最佳答案

您可以执行以下操作


在您的MVC项目=>视图=>共享中,创建新文件夹DisplayTemplates
DisplayTemplates文件夹下创建新视图,并将其命名为Date.cshtml


Date.cshtml的代码

@model DateTime?
@if(Model!=null && Model!=DateTime.MinValue)
{
   @string.Format("{0:MM/dd/yyyy}",Model)
}


您模型的代码

[DataType(DataType.Date)]
public DateTime? achPayDate { get; set; }


这种方式将使所有带有数据注释[DataType(DataType.Date)]的DateTime遵循相同的行为,并且您也可以对EditorTemplates执行相同的操作

您可以获得有关EditorTemplatesDisplayTemplates here的更多信息

希望能帮到你

关于c# - 将MVC默认日期(01/01/0001)设置为空,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39582419/

10-12 03:15