这让我发疯,类似于 this 。如果我使用标准表单并且没有 JavaScript, Controller 会正确绑定(bind)日期时间。但是,当我从表单发布时,它总是绑定(bind)为 null:
"MyObject.Name": "Test name",
"MyObject.Date": "5/1/2001"
我尝试了几个变体,5-1-2001 等,但似乎无法接受。我可以确认它正在被传递到服务器,因为它显示在 Request.Form 字符串中。我的文化是公历并且我已经设定:
Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
在Application_BeginRequest()中。给出了什么?
最佳答案
您是否尝试过使用前导零,例如“05/01/2001”?
不变区域性的标准日期格式包括“MM/dd/yyyy”,但不包括“M/d/yyyy”,所以如果它有效,那就是原因。理想情况下,您可以使用一种非特定于文化的格式,例如“O”往返模式。那么你在服务器上使用什么文化就不再重要了: http://msdn.microsoft.com/en-us/library/az4se3k1.aspx#Roundtrip
关于javascript - 从 Javascript 发布到 ASP.NET 中的 Controller 的 DateTime 结果为 null (01/01/0001),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3018214/