C# webapi在控制器中使用datetime反序列化JSON请求
备选案文1: 如果手动反序列化JSON请求,则会得到正确的结果:C# webapi在控制器中使用datetime反序列化JSON请求,c#,json,asp.net-web-api,C#,Json,Asp.net Web Api,备选案文1: 如果手动反序列化JSON请求,则会得到正确的结果: [Route("search")] [HttpPost] public IEnumerable<ErrorLogDto> Search(HttpRequestMessage request) { string res = request.Content.ReadAsStringAsync().Result; LogSearchDto dto = JsonConvert.DeserializeObject
[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
[路由(“搜索”)]
[HttpPost]
公共IEnumerable搜索(HttpRequestMessage请求)
{
string res=request.Content.ReadAsStringAsync().Result;
LogSearchDto dto=JsonConvert.DeserializeObject(res,typeof(LogSearchDto))作为LogSearchDto;
//dto=不为空
选项2:如果我使用此选项,我总是为dto获取空值:
[Route("search")]
[HttpPost]
public IEnumerable<ErrorLogDto> Search([FromBody]LogSearchDto dto)
{
// dto = null!
[路由(“搜索”)]
[HttpPost]
公共IEnumerable搜索([FromBody]LogSearchDto dto)
{
//dto=null!
我不知道如何调试它。经过长时间的搜索,我通过从Global.asax.cs中删除以下行来解决问题:
var json = GlobalConfiguration.Configuration.Formatters.JsonFormatter;
json.UseDataContractJsonSerializer = true;