在我的视图和控制器之间某处不匹配,这导致后者接收到一个复杂的对象,该对象充满了空值。
[HttpGet("find")]
[ProducesResponseType(typeof(PagableResults<UserDetails>),StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)]
[SwaggerOperation("FindUsers")]
public async Task<IactionResult> FindUsers([FromQuery]FindUsersSearchFilter searchFilters)
并且searchFilters对象的定义如下:
public class FindUsersSearchFilter
{
public int? Page { get; set; }
public string username { get; set; }
public string Firstname { get; set; }
public string Surname { get; set; }
}
视图正在像这样发送查询字符串中的数据(因为这是一个get方法):
/find?SearchFilters.Page=1&SearchFilters.Firstname=foo&SearchFilters.Surname=bar&SearchFilters.username=
但是,如果您调试控制器操作,则会遇到断点,但是该方法接收到的FindUsersSearchFilter的每个属性都为空值。
我尝试过的事情:
- 在控制器操作上绑定(Prefix =“ SearchFilters”)。
- 在控制器操作上绑定(“ Page,Firstname,Surname,username”)
- 手动更改网址以删除前缀并更改大小写
- 删除[FromQuery]
不知所措,下一步该去哪里。关于我错了什么建议吗?