我为我的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
答案 0 :(得分:0)
当文化信息不正确时,您需要配置web.conf
<system.web>
<globalization culture="en-US" />
</system.web>
here列出了您所在国家/地区的不同文化信息。
这是IIS 8.0及更新版本的问题。