2

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

输入包括 Date 在内的所有详细信息后,我提交了表单,但没有转到下一页,而是重新加载相同的表单,并在 Date 字段上显示验证错误并将 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 服务器是 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 字段中被初始化。

问候,

曼格什

4

1 回答 1

2

当文化信息不正确时会发生这种情况,您需要配置 web.conf

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

是一个不同文化信息的列表,这些信息取决于您所在的国家/地区。

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

于 2018-04-18T14:03:48.767 回答