如何解决如何使用导致“01/01/0001 00:00:00”的日期时间参数修复 API Get 请求
我有一个像 https://localhost:5001/myResource?fromdate=22-12-2019
这样的 API 端点。当我执行 Get 请求时,SearchFilters 对象中的 RequestFromDate 字段设置为“01 /01/0001 00:00:00" 并且不是有效日期。用户可以仅以这种格式dd-MM-yyyy发送日期。我该如何解决这个问题?我在启动课程中遗漏了什么吗?我正在使用 Newtonsoft (Core3.1)
public class SearchFilters
{
[FromQuery(Name = "fromDate")]
public DateTime FromDate { get; set; }
}
我的控制器
[HttpGet]
public async Task<IActionResult> GetAsync([FromQuery] SearchFilters searchFilters)
{
..
}
我的启动部分中我设置 NewtonSoftJson 的部分
services
.AddControllers(options => { options.EnableEndpointRouting = false; })
.AddNewtonsoftJson(options =>
{
options.SerializerSettings.NullValueHandling = NullValueHandling.Ignore;
options.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
options.AllowInputFormatterExceptionMessages = true;
options.SerializerSettings.Converters.Add(new StringEnumConverter());
})
.AddJsonApi(opt => opt.AllowInputFormatterExceptionMessages = true);
我尝试添加以下内容但没有成功
.AddNewtonsoftJson(options =>
{
options.SerializerSettings.Converters.Add(new MyDateFormatConverter());
}
我的自定义转换器
public class MyDateFormatConverter: IsoDateTimeConverter
{
public MyDateFormatConverter()
{
DateTimeFormat = "dd-MM-yyyy";
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。