如何在asp.net mvc 4中强制使用datetime格式?在显示模式下,它显示为我想要的,但在编辑模型中,它没有显示。我正在使用displayfor和editorfor,并使用dataformatstring =“ {0:dd / MM / yyyy}”来applyformatineditmode = true进行了尝试:
我的文化和uiculture在web.config(两者)中都实现了全球化。
在application_start()中修改文化和uiculture
用于日期时间的自定义modelbinder
我不知道如何强制执行,我需要输入日期作为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)。
自定义modelbinder在application_start()b / c中调用,我不知道在其他地方。
使用<globalization/>我尝试过的culture="ro-RO", uiCulture="ro"和其他会给我dd / MM / yyyy的文化。我也尝试在application_start()中基于每个线程设置它(这里有很多示例,关于如何执行此操作)
对于所有将要阅读的问题:只要我没有客户端验证,Darin Dimitrov的答案似乎就会起作用。另一种方法是使用定制验证,包括客户端验证。我很高兴在重新创建整个应用程序之前就发现了这一点。
犯罪嫌疑人X