如何将 Blazor 中的 InputDate 字段的默认值设置为 null?

Shr*_*rey 4 html razor blazor blazor-webassembly

我的 Blazor 编辑表单中有许多 InputDate 字段。当我运行代码时,默认情况下它设置为 01/01/0001。我觉得有点奇怪。我觉得默认应该设置为空白。这样,当用户错过输入日期时,就会弹出错误(因为 OrderDate 设置为必填)。有没有 Blazor 的方法或做法?

一些代码片段:

                <div class="form-group col">
                    <label>Order Date</label>
                    <InputDate @bind-Value="model.OrderDate" class="form-control" />
                    <ValidationMessage For="@(() => model.OrderDate)" />
                </div>
Run Code Online (Sandbox Code Playgroud)

型号代码:

        [Required]
        [Display(Name = "OrderDate")]
        public DateTime OrderDate { get; set; }
Run Code Online (Sandbox Code Playgroud)

Hen*_*man 6

Blazor 不应该受到指责,这是 .net 的事情。01-01-0001 是有效日期(DateTime.MinValue并且也是default(DateTime))。

模型中的属性不可为空,因此您看到的是正确的。当您想要空值时,您必须更改模型:

//public DateTime OrderDate { get; set; }
  public DateTime? OrderDate { get; set; }
Run Code Online (Sandbox Code Playgroud)

Blazor 确实支持可为 null 的值类型。