【问题标题】:DateTime in model is in US format when doing HTTPGET, but not on HTTPPOST执行 HTTPGET 时,模型中的 DateTime 为美国格式,但在 HTTPPOST 上不是
【发布时间】:2011-07-04 16:01:50
【问题描述】:

作为测试,我使用 DateTime theDate 和 String theString 设置模型,并在控制器的 Index 方法中将它们都设置为 DateTime.Today。然后返回视图和模型。

然后有一个带有@model 的 2 个文本控件的视图,它们都显示为 04/07/2011(对于英国来说是正确的)。如果我然后使用提交按钮执行 HTTPGET , theDate 有 07/04/2011 并且 theString 有 04/07/2011。如果我做一个 POST,那么两个日期都是相同的 04/07/2011。

我检查了 CurrentCulture 和 CurrentUICulture,当两者都是 en-GB 时会发生这种情况。

任何想法,因为我真的想做一个 GET,因为一个 POST 在使用返回按钮时会导致问题

我见过 http://weblogs.asp.net/melvynharbour/archive/2008/11/21/mvc-modelbinder-and-localization.aspx ,但这并没有解决我的问题。

有些日期可能是“Post”,有些可能是“Get”,这导致日期从 GB 切换到 US,我不知道如何区分。

【问题讨论】:

  • 您是否尝试将[DisplayFormat(DataFormatString="{0:dd/mm/yyyy}")] 属性添加到日期属性?
  • 我有同样的问题(但使用 pt-PT 而不是 en-UK)并且“DisplayFormat”没有解决我的问题。

标签: asp.net-mvc-3


【解决方案1】:
[HttpGet]
public ActionResult Search(string Dob)
{
    DateTime DobDT = Dob == null ? null : (DateTime?)DateTime.Parse(Dob);
}

【讨论】:

  • 欢迎来到 SO,这不是一个论坛,这是一个问答网站。请不要将问题作为答案发布,但您似乎已通过在答案中进行编辑来修复它。
猜你喜欢
  • 1970-01-01
  • 2013-05-29
  • 1970-01-01
  • 1970-01-01
  • 2021-02-28
  • 1970-01-01
  • 2013-08-20
  • 1970-01-01
相关资源
最近更新 更多