[英]Controller changing date from dd/MM/yyyy to MM/dd/yyyy
我正在為 API 使用 .NET Core 3.1,其工作方式如下:
[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) 格式發送日期時,它在 controller 中顯示為 (MM/dd/yyyy)。
我在某處讀到 ModelBinder 僅適用於x-www-form-urlencoded
,但對於我的 POST 方法,我發送的是 JSON。
我曾嘗試更改DefaultThreadCurrentCulture
和DefaultThreadCurrentUICulture
但它不起作用。
我也嘗試過使用自定義 JsonConverter 但是我必須將 JsonConverter 添加到我擁有的每個日期。
我正在尋找更復雜的解決方案。
嘗試以下操作:
public class ClassA
{
private DateTime _date
[JsonProperty("date1")]
public string date {
get{ return _date.ToString("MM/dd/yyyy");}
set{ _date = DateTime.ParseExact(value, "MM/dd/yyyy", System.Globalization.CultureInfo.InvariantCulture);}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.