所以我有一个使用Axios的服务来调用我的C#API 由于我想选择特定的数据,因此我将get方法与参数一起使用
这是我的服务
let response = await Axios.get('/api/get-report', {
params: filter
});
这是我在打字稿中的过滤器对象
export interface FilterModel {
employeeId?: string;
Month?: Date;
from?: Date;
to?: Date;
}
服务器上的模型
public class AttendanceReportFilterModel
{
public string EmployeeId { set; get; }
public DateTime? Month { set; get; }
public DateTime? From { set; get; }
public DateTime? To { set; get; }
}
最后,这是我的C#API
[HttpGet("get-report")]
public async Task<IActionResult> GetReport(FilterModel filter)
{
var Detail = await Service.GetReport(filter);
if (Detail == null)
{
return StatusCode(500, "Not Found");
}
return Ok(Detail);
}
无论何时我调用我的服务,它总是返回错误请求 有人知道为什么吗?以及如何解决这个问题?
答案 0 :(得分:1)
尝试添加
[FromQuery]
public async Task<IActionResult> GetReport([FromQuery] FilterModel filter)
因此,由于您要绑定到对象,因此需要说明将它们https://docs.microsoft.com/en-us/aspnet/core/mvc/models/model-binding?view=aspnetcore-2.1#customize-model-binding-behavior-with-attributes带到哪里。
或者您也可以仅使用参数
public async Task<IActionResult> GetReport(string EmployeeId, DateTime? Month = null, DateTime? FromMonth = null, DateTime? ToMonth = null)