6

我有一个 MVC4 应用程序,它在英国编译并托管在美国服务器上。在我的模型中,我有一个必需的日期字段。

附加到该字段的是一个日期选择器,在选择一个日期时,它会将日期设置为英国格式“DD/MM/YYYY”,例如 23/12/2013。在提交表单时,应用程序会引发验证错误,因为它不需要该格式。

在 MVC4 中我如何:

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

有没有人知道如何根据用户的全球化进行非常验证?

谢谢

4

2 回答 2

2

您是否添加了以下部分web.config

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

并以 DateTime 格式读取代码中的日期。那不应该给你带来问题。

另一种方法是在您的服务器端代码中始终将日期读取为 DateTimeUTC 并且当您在屏幕上显示日期时,使用.ToLocalTime()

于 2013-04-15T14:26:40.810 回答
1

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

<globalization culture="Auto" />

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

于 2013-04-15T14:26:29.550 回答