单击提交按钮后,在MVC 3.0 Web应用程序中将日期设置为01/01/0001 00:00:00

时间:2013-04-17 09:07:15

标签: asp.net-mvc datetime postback

我为我的MVC Web应用程序设计了一个表单,用户可以使用该表单输入详细信息。其中一个细节是日期,他/她可以从日期时间选择器中选择。

输入包括日期在内的所有详细信息后,我提交表单但不是转到下一页,同一表单重新加载日期字段上的验证错误并设置01/01/0001 00:00:00作为日期。

解决方案是什么?

我已经声明了我的日期时间变量 -

[Required]
[DisplayFormat(DataFormatString = "{0:dd-MM-yyyy}", ApplyFormatInEditMode = true)]
public DateTime ShipmentDate { get; set; }

这个缺少什么?

技术细节:

我已在 Windows Server 2012上部署了我的MVC应用程序。数据库是SQL Server 2012,Web Server是IIS 8.

当我从我的开发版本运行时它工作正常,即 - 从Visual Studio 2012-Db SQL Server 2012 - IIS 7.5。但上面这行是我想要使用的实时版本。

请帮助解决困惑。

一种可能的解决方案可以是超出上下文的DateTimePicker文件。当我测试应用程序时,输入日期例如:2013年4月17日..它有效。

我为datetimePicker使用了外部.js文件。该文件的操作系统要求是Windows 7,Windows Vista。

我已经在Windows Server 2012上部署了我的应用程序(甚至是服务器上的datepickerFile)。因此,我认为,文件的JQuery Logic没有得到实现,因此即使在表单的textBox中设置之后日期仍为空。

最后,当我们进行回发时,会将null值返回到我的模型,并检查Model.IsValid的条件是否为null,这将失败,并重新创建视图。由于Datetime的默认值为01/01/0001 00:00:00,因此该值在dateTime字段中初始化。

此致

Mangesh

1 个答案:

答案 0 :(得分:0)

当文化信息不正确时,您需要配置web.conf

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

here列出了您所在国家/地区的不同文化信息。

这是IIS 8.0及更新版本的问题。