webapi在控制器中使用datetime反序列化JSON请求

本文关键字:datetime 反序列化 JSON 请求 控制器 webapi | 更新日期: 2023-09-27 18:12:35

选项一:如果我手动反序列化JSON请求,就会得到正确的结果:

[Route("search")]
[HttpPost]
public IEnumerable<ErrorLogDto> Search(HttpRequestMessage request)
{
    string res = request.Content.ReadAsStringAsync().Result;
    LogSearchDto dto = JsonConvert.DeserializeObject(res, typeof(LogSearchDto)) as LogSearchDto;
    //dto = not null

选项2:如果我使用这个,我总是得到NULL值的dto:

[Route("search")]
[HttpPost]
public IEnumerable<ErrorLogDto> Search([FromBody]LogSearchDto dto)
{
// dto = null!

我不知道如何调试这个…

webapi在控制器中使用datetime反序列化JSON请求

经过长时间的搜索,我通过从Global.asax.cs中删除以下行来解决问题:

var json = GlobalConfiguration.Configuration.Formatters.JsonFormatter;
json.UseDataContractJsonSerializer = true;