Asp.net DateTime字段未通过包含时间的验证

Asp.net DateTime字段未通过包含时间的验证,asp.net,asp.net-mvc,asp.net-mvc-3,Asp.net,Asp.net Mvc,Asp.net Mvc 3,我的模型有一个日期时间字段: [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.V

我的模型有一个日期时间字段:

    [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" } ) 
} 
  • 我收到验证消息:
字段TimeBooked必须是日期

我的模型或编辑器模板是否有问题

谢谢,


标记

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

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

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


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

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

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

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


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

我认为这与日期作为不变区域性处理的方式有关。你在使用什么文化?是不是像你的例子中那样是
en
。谢谢,MarkHi-视图/模型似乎希望日期的格式为MM/dd/yyyy-尽管我在上面明确地将其设置为dd/MM/yyy-是否有任何方法可以强制它使用我选择的格式?我认为这与日期作为不变区域性处理的方式有关。你在使用什么文化?是不是像你的例子中那样是
en
。谢谢,MarkHi-视图/模型似乎希望日期的格式为MM/dd/yyyy-尽管我在上面明确地将其设置为dd/MM/yyyy-有什么方法可以强制它使用我选择的格式吗?嗨-谢谢-我尝试了,但它仍然不允许(例如)2012年7月22日-我想一定是editortemplate在某种程度上-当我将格式更改为yyyy mm dd(不可读)时,它工作正常??!!如果在代码中放置断点,那么请求对象中的值是什么样的?您使用的是哪个地区/国家/地区?该日期格式看起来不是英文的。您好-它看起来像:#22/07/2012#-我的代码应该将其格式设置为dd/MM/yyyy(这是英国显示日期的方式)-我知道VS是美国的,因此#22/07/2012#无效,因为没有编号为22的“月”。我想我可以回到yyyy-mm-dd,因为使用它没有任何混乱。非常感谢您的帮助。我在.NET中使用本地化/全球化已经多年了,我再也没有遇到过问题,所以我想,毫无疑问,.NET框架可以处理任何情况,所以问题一定在代码中的某个地方。嗨-谢谢-我试过了,但它仍然不允许(例如)2012年7月22日-我想一定是editortemplate在某种程度上-当我将格式更改为yyyy mm dd(不可读)时,它工作正常??!!如果在代码中放置断点,那么请求对象中的值是什么样的?您使用的是哪个地区/国家/地区?该日期格式看起来不是英文的。您好-它看起来像:#22/07/2012#-我的代码应该将其格式设置为dd/MM/yyyy(这是英国显示日期的方式)-我知道VS是美国的,因此#22/07/2012#无效,因为没有编号为22的“月”。我想我可以回到yyyy-mm-dd,因为使用它没有任何混乱。非常感谢您的帮助。我在.NET中从事本地化/全球化工作多年,我再也没有遇到过问题,因此我想,.NET框架无疑可以处理任何情况,所以问题一定在代码中的某个地方。
  <system.web>
    <globalization culture="en-GB" uiCulture="en-GB"/>