【发布时间】:2021-02-17 01:54:09
【问题描述】:
如何处理 ASP.NET Core 中的未知参数?当我使用[FromQuery] 时,它只是忽略未知参数,但理想情况下,如果参数未知,它应该返回 400,以便调用者知道它需要修复参数?
示例:GetRecords 尝试使用查询字符串中的任何 StartDate 或 EndDate,如果未指定则使用默认值。
但是如果像?StartTime=2021/2/15&EndTime=2021/2/16 这样的查询,代码实际上将返回数据库中的所有记录,因为它认为没有传递参数。理想情况下,它应该抛出一个错误,让调用者知道参数名称无效。
class RecordQuery
{
public RecordQuery()
{
StartDate = DateTime.MinValue;
EndDateTime = DateTime.Now;
}
//...
}
class Controller
{
public async Task<ActionResult<RecordsResult>> GetRecords([FromQuery] RecordQuery query)
{
// query db where date < query.EndDateTime && date > query.StartDateTime;
}
}
【问题讨论】:
标签: asp.net-core parameters controller