鉴于我修改了很多,我注意到日期选择器的日期格式不适合我想要的。 我不需要几个小时。
经过研究,我发现建议向模型的 DateTime 属性添加一个属性:
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd MMM yyyy}")]
然后我假设这个属性添加应该应用于视图。但我不知道该怎么做。 我们可以重新加载视图以使其考虑更改,还是应该删除它并构建一个新视图?
请允许我在 .Net 8 MVC APP 中分享我的测试,我认为这可能有助于显示结果。下面是我的代码,就像您所看到的那样,我在模型上有不同的日期格式设置,并且我在其中一个输入上有
type="date"
配置。
<div>
<label asp-for="MyDate" class="control-label"></label>
<input asp-for="MyDate" type="date" class="form-control" />
<input asp-for="MyDate2" class="form-control" />
</div>
<div>
@Html.TextBoxFor(m => m.MyDate, new { @type = "date" })
@Html.TextBoxFor(m => m.MyDate2, new { })
</div>
public class MyModel
{
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd-MMM-yyyy}")]
public DateTime MyDate { get; set; }
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd MMM yyyy}")]
public DateTime MyDate2 { get; set; }
}
就像您在屏幕截图中看到的那样,
[DisplayFormat]
使DOM中的值具有不同的行为,但它不影响UI中的外观,type="date"
使日期输入仅显示日期而不显示时间。同时,[DisplayFormat] 属性需要重新启动应用程序才能生效。