包含时间的DateTime字段验证失败

时间:2012-07-22 17:45:04

标签: asp.net asp.net-mvc asp.net-mvc-3

我的模型有一个DateTime字段:

    [UIHint("DateTimeHHMM")]
    public DateTime TimeBooked { get; set; }

使用EditorTemplate进行渲染:

@model Nullable<System.DateTime> 

@if ( Model.HasValue ) { 
@Html.TextBox( "" , String.Format( "{0:dd/MM/yyyy HH:mm:ss}" , Model.Value ) , new  {     @class = "span3 disabled" } ) 
} 
else { 
@Html.TextBox( "" , String.Format( "{0:dd/MM/yyyy HH:mm:ss}" , DateTime.Now ) , new { @class = "span3 disabled" } ) 
} 

在我看来,语法是:

    <div class="editor-label">
        @Html.LabelFor(model => model.TimeBooked)
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.TimeBooked)
        @Html.ValidationMessageFor(model => model.TimeBooked)
    </div>

在视图中创建记录时,在文本框中单击“保存”并显示以下内容:

22/07/2012 18:33:29
  • 我收到验证消息:
  

TimeBooked字段必须是日期。

我的模型或编辑模板有问题吗?

谢谢,

标记

1 个答案:

答案 0 :(得分:1)

您应确保应用程序以适当的语言(CultureInfo)运行,尤其是涉及日期(和数字)格式时。

您可以在web.config文件中执行此操作。

  <system.web>
    <globalization culture="en-GB" uiCulture="en-GB"/>

您应该将此设置为符合您需求的任何地区/国家/地区,这样.NET将正确处理日期和数字的解析。