将 MVC 默认日期 (01/01/0001) 设置为空

use*_*384 5 c# asp.net-mvc datetime date razor

我的 Razor 表单代码

<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>
Run Code Online (Sandbox Code Playgroud)

我的CS代码

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

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

Mon*_*nah 6

您可以执行以下操作

  1. 在您的 MVC Project => Views => Shared 中,创建新文件夹DisplayTemplates
  2. 在文件夹下创建新视图DisplayTemplates并调用它Date.cshtml

Date.cshtml的代码

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

你的模型的代码

[DataType(DataType.Date)]
public DateTime? achPayDate { get; set; }
Run Code Online (Sandbox Code Playgroud)

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

您可以在此处EditorTemplates获取有关和的更多信息DisplayTemplates

希望对你有帮助