【发布时间】:2015-05-23 06:11:13
【问题描述】:
在我的 ASP.NET MVC 应用程序中,ModelState 始终无效,并显示以下错误消息:"The value '5/23/2015 7:29:37 AM' is not valid for Register Date."
我正在尝试针对波斯文化本地化我的应用程序,因此我在web.config 中将uiCulture 和culture 设置为fa-IR。不过,DateTime.Now 不会返回本地化日期。
全球化DateTime的正确方法是什么?我应该在数据库中存储本地化日期吗?还是本地化版本仅用于查看?
看来我应该在数据库中存储本地化版本,我怎样才能获得波斯文化?
更新:
看来我无法直接获取当前的波斯日期,我必须按照MSDN 中的说明进行转换:
您不能将 PersianCalendar 对象用作文化的默认日历。默认日历由 CultureInfo.Calendar 属性指定,并且必须是 CultureInfo.OptionalCalendars 属性返回的日历之一。目前,PersianCalendar 类不是 CultureInfo 类支持的任何文化的可选日历,因此不能是默认日历。
但我怎么知道是哪个组件添加了错误消息以及如何修复它?
【问题讨论】:
-
在数据库中存储UTC是最好的方法..然后你可以在应用程序代码中做转换逻辑
-
那么,为什么我的 ModelState 总是因为 DateTime 而无效?
-
您是否使用 jquery datepicker 插件来选择日期,如果是,您是否使用过
jquery.globalize.js? -
目前,我在控制器中使用
DateTime.Now插入当前时间。因此,用户不输入日期。但我的应用程序使用剑道。这将是下一个痛苦的步骤,拥有一个全球化的日期选择器。 -
如果用户没有在您的模型上输入日期,为什么不更改您的模型以使用可为空的日期时间
DateTime?。你试过了吗?错误还存在吗?
标签: c# .net sql-server asp.net-mvc