控制器未收到英国格式的MVC3日期

glo*_*rob 4 c# ajax asp.net-mvc datetime

鉴于这个VM

public class ApplicationDTO : BaseDTO
{
    public DateTime Date { get; set; }
    public int JobId {get;set;}
    public int Status {get;set;}
    [Required]
    public string Message { get; set; }
    public string ExpertCode { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

因此,我有一个隐藏的领域

@Html.Hidden("Date", DateTime.Now)
Run Code Online (Sandbox Code Playgroud)

哪个小提琴手告诉我的是按照我的预期发送到服务器(英国格式,我在英国!)

在此输入图像描述

但在控制器上,日期显示为默认最小值.日期

在此输入图像描述

它只是英国格式吗?如果是这样,我最好的方式是什么呢?虽然目前我将其设置为当前日期,但可能会将其设置为任何给定日期,即

@Html.HiddenFor(x => x.Date)
Run Code Online (Sandbox Code Playgroud)

我正在使用AJAX提交表单,如果这有所不同.

Gra*_*ler 6

如果是Get MVC在模型绑定期间默认使用文化不变格式(基本上是美国格式).所以它不接受英国日期格式.我相信设计的原因是可以传递一个查询字符串因此它需要文化不变(我不是100%被这种逻辑所说服).

本文介绍了一种可能的解决方案http://xhalent.wordpress.com/2011/05/14/localization-of-dates-in-asp-net-mvc/

我们只是确保我们永远不会使用英国日期格式

这个问题还涉及DateTime和ASP.NET MVC 3模型绑定的全球化问题