2013-04-15 34 views
6

我有一个MVC4应用程序,它在英国编译并托管在美国服务器上。在我的模型中,我有一个需要的日期字段。验证日期取决于地区

附加到该字段是日期选择器,在选择日期时,它将日期设置为英国格式“DD/MM/YYYY”,例如23/12/2013。在提交表单时,应用程序会抛出验证错误,因为它没有预期格式。

在MVC4我该怎么办:

  1. 接受两个日期格式,即覆盖的日期格式?我已经设置了日期格式,但不能指定多个日期格式
  2. 服务器端我使用Linq将日期保存到数据库。这也会导致错误的格式不正确。我怀疑我需要转换到英国的日期?
  3. 加载详细信息时,根据用户的位置以正确的格式输入日期
  4. 检测用户服务器端的位置?

有没有人有关于如何基于用户的全球化非常验证的任何细节?

感谢

回答

1

在web配置,在全球化的部分,设置文化为“自动”。 这将使用用户当前的文化(包括数字和日期时间格式)

<globalization culture="Auto" /> 

.NET框架将解析,并根据用户的文化和MVC和实体都将正常工作呈现数据。

2

您是否在web.config中添加了以下细分受众群?

<globalization 
    enableClientBasedCulture="true" 
    uiCulture="auto" 
    culture="auto" /> 

并以日期时间格式在代码中读取日期。这不应该给你一个问题。

另一种方法是在你的服务器端代码读取THA日期始终为DateTimeUTC当你永远在屏幕上显示的日期,使用.ToLocalTime()