C# 停止验证ModelState Core 3中返回无效的空DateTime字段

C# 停止验证ModelState Core 3中返回无效的空DateTime字段,c#,asp.net-core,razor,C#,Asp.net Core,Razor,我有一个具有以下语法的razor页面 <form method="post"> <input id="Text1" type="date" asp-for="@Model.PersonModel.DOB" /> <h2> Is Valid: @ModelState.IsValid </h2> <input id="Submit1" type="submit" value="submit

我有一个具有以下语法的razor页面

 <form method="post">

    <input id="Text1" type="date" asp-for="@Model.PersonModel.DOB" />

    <h2>
        Is Valid: @ModelState.IsValid
    </h2>


    <input id="Submit1" type="submit" value="submit" />
</form>
在我的个人模型中

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

public class CustomDateTimeAttribute: ValidationAttribute
{

    public CustomDateTimeAttribute()
    {

    }


    protected override ValidationResult IsValid(object value, ValidationContext validationContext)
    {
        return ValidationResult.Success;
        //return base.IsValid(value, validationContext);
    }
}

当我在UI页面上输入nothing时,点击submit,如果日期为空,它将被忽略并返回Invalid,但是如果为空,我希望它返回Valid,如果日期不正确,则仅返回Invalid。我认为,通过使用自定义验证器,您可以使用如下可为空的日期时间:

public DateTime? DOB { get; set; }
或者以另一种形式

public Nullable<DateTime> DOB { get; set; }
public可空DOB{get;set;}
public Nullable<DateTime> DOB { get; set; }