- 在web.config中的全局化设置(两个)中使用我的culture和uiculture。 - 修改application_start()中的culture和uiculture。 - 为datetime自定义模型绑定器。
我不知道如何强制它,我需要以dd/MM/yyyy的格式输入日期,而不是默认格式。
更多信息: 我的视图模型是这样的。
[DisplayName("date of birth")]
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
public DateTime? Birth { get; set; }
在视图中,我使用 @Html.DisplayFor(m=>m.Birth)
,它按预期工作(我能看到格式化后的日期)。
而在输入日期时,我使用 @Html.EditorFor(m=>m.Birth)
,但是如果我尝试输入像 13/12/2000 这样的日期,就会出现“不是有效日期”的错误(12/13/2000 和 2000/12/13 按预期工作,但我需要 dd/MM/yyyy 格式)。
我在 application_start()
中调用自定义模型绑定器,因为我不知道其他地方该怎么做。
使用 <globalization/>
,我已经尝试了 culture="ro-RO", uiCulture="ro"
和其他可以给出 dd/MM/yyyy 格式的区域设置。
我还尝试在 application_start() 中为每个线程设置区域设置(这里有很多示例说明如何实现)。
对于所有阅读此问题的人: 似乎 Darin Dimitrov 的答案只适用于没有客户端验证的情况。 另一个方法是使用自定义验证,包括客户端验证。 我很高兴在重新创建整个应用程序之前找到了这个解决方法。
Application_Start
,但这只在应用程序启动时执行一次。那么对于后续的请求呢?您是如何为它们设置文化的? - Darin Dimitrov