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!
我不知道如何调试这个…
经过长时间的搜索,我通过从Global.asax.cs中删除以下行来解决问题:
var json = GlobalConfiguration.Configuration.Formatters.JsonFormatter;
json.UseDataContractJsonSerializer = true;