我搜索了一个问题的答案,该问题是关于如何在Razor ASP MVC中创建一个配备自定义日期选择器的仅限日期输入。 问题的核心是我还在我的应用中实施了本地化。
首先我将属性添加到模型中的参数:
[DisplayFormat(DataFormatString = "{0:dd.MM.yyyy}", ApplyFormatInEditMode = true)]
当切换应用程序的语言时,这会导致麻烦,因为格式只对一种语言有效。
第二种方法是为模型类添加另一个属性:
[DataType(DataType.Date)]
有了这个,我实现了Chrome / Opera / Vivaldi提供了一个浏览器集成日期选择器。
<input type="date"/>
但是,这不能正常工作,因为它使用的是浏览器语言而不是用户选择的语言。因此,服务器需要以不同格式发布日期。所以验证失败了。另一方面,好的旧IE显示简单的输入字段,其内部格式正确。
第三种方法使用ToShortDateString()函数将DateTime对象转换为HTML帮助器中的本地字符串:
@Html.EditorFor(model => model.ConstructionStart_PLANNED.ToShortDateString(), new { htmlAttributes = new { @class = "form-control" } })
结果为例外。
非常感谢任何帮助。