如何为日期选择器设置初始值?

How do I set an initial value for a datepicker?

我认为是这样的:

@Html.EditorFor(model => model.StartDate, new { htmlattributes = new { @class = "datepicker" } })

我试过这个:

@Html.EditorFor(model => model.StartDate, new { htmlattributes = new { @class = "datepicker", @value = "10/18/2021" } })

但是没有效果。如何控制初始日期?

如果你想用value属性设置初始值,这里有一个工作演示:

开始日期:

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

查看:

<input asp-for="StartDate" class="datepicker" value="2021-10-20" />

结果:

最终,它是模型定义。我在几个地方看到过这个解决方案并尝试过,但我试错了。我在模型中有两个日期,我无意中更改了一个没有效果的错误。

最初编写的模型是:

    [DataType(DataType.Date), ErrorMessage = "Date Only"]
    [DisplayFormat(DataFormatString = "{0:MM-dd-yyyy}", ApplyFormatInEditMode = true)]
    [Display(Name = "Starting Date")]
    public DateTime StartDate { get; set; }

修复了什么:

    [DataType(DataType.Date), ErrorMessage = "Date Only"]
    [DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
    [Display(Name = "Starting Date")]
    public DateTime StartDate { get; set; }

注意顺序中 DataFormatString 的变化。这确实解决了我的问题,如果我在适当的地方更改它,我自己就会看到这个。