【发布时间】:2016-08-07 03:10:09
【问题描述】:
在我们的 MVC 3 Web 应用程序中,我们使用当前用户的首选项定义 Thread.CurrentThread.CurrentCulture。但是,在一个视图中,我们始终以mm/dd/yyyy 的格式通过Ajax 提交数据,只要用户的文化是en_US 就可以正常工作。 (显然)
令人惊讶的是,当我们将其作为 HTTP-POST 传递时,它适用于所有用户,但当我们将其作为 HTTP-GET 传递时,它就停止工作了。 (在这两种情况下,离开浏览器的值完全相同)。
知道为什么 HTTP-POST 调用的处理方式与 HTTP-GET 不同吗?
此外,该操作还有其他参数。在 HTTP-POST 的情况下,它们都设置在正文中,例如:
{
"date": "04/15/2016",
"someText": "Hello World",
"someNumber": 42
}
对于 HTTP-GET,它们是查询参数:
domain.tld/controller/action?date=04%2F15%2F2016&someText=Hello+World&someNumber=42
更新:
为避免混淆,该方法被正确调用并在两种情况下都返回值。只是没有设置DateTime 参数(实际上是DateTime?),就像我将它设置为一些无效的日期/字符串一样。
【问题讨论】:
-
我认为你的最后一行文字应该是“and for HTTP-GET”
-
@SPlatten 你完全正确,为那个错误道歉
标签: ajax asp.net-mvc asp.net-mvc-3 culture