【发布时间】:2021-06-13 01:54:17
【问题描述】:
我正在使用 .NET Core 3.1 的 API,其工作原理如下:
[HttpPost]
public IActionResult Post([FromBody]ClassA classA)...
[HttpGet]
public IActionResult Get([FromQuery]ClassB classB)...
public ClassA {
[JsonProperty("date1")]
public DateTime date {get;set;}
}
public ClassB{
[JsonProperty("date2")]
public DateTime date {get;set;}
}
当我发送 GET 请求时,我能够获得所需的格式 (dd/MM/yyyy),因为我有一个自定义 ModelBinder 可以解决问题。
我认为它也适用于 POST 请求,但事实并非如此。当我以 (dd/MM/yyyy) 格式发送日期时,它会在控制器中显示为 (MM/dd/yyyy)。
我在某处读到 ModelBinder 仅适用于 x-www-form-urlencoded,但对于我的 POST 方法,我发送的是 JSON。
我尝试更改DefaultThreadCurrentCulture 和DefaultThreadCurrentUICulture,但没有成功。
我也尝试过使用自定义 JsonConverter,但是我必须将 JsonConverter 添加到我拥有的每个日期。
我正在寻找更复杂的解决方案。
【问题讨论】:
-
像个大人一样 - ISO 8601 取胜 - xkcd.com/1179.
-
@AlexeiLevenkov 我将数据发送到第三方 API,他们要求日期为 dd/MM/yyyy