我正在为此项目使用.net core 2.0。
我目前有一个简单的http get方法来搜索对象。由于我想为参数添加分页,我添加了一个分页对象。
问题是每次调用方法时,分页对象都有默认值(对于限制和偏移总是0)
我尝试了几种选择,但没有一种可行。我会发布我的代码以显示我的问题。
控制器方法如下所示:
[HttpGet]
[Route("searchByName")]
public async Task<IActionResult> SearchByName(string searchText, [FromQuery] Paging paging)
{
// Searching and returning results
}
分页对象如下所示:
[DataContract]
public class Paging
{
public Paging()
{
}
public Paging(int offset, int limit)
{
Limit = limit;
Offset = offset;
}
[FromQuery(Name = "Limit")]
public int Limit { get; }
[FromQuery(Name = "Offset")]
public int Offset { get; }
}
每次使用swagger UI调用方法时,限制和偏移量始终为0.
这是调试时进入方法的原因:
我忘记了什么吗?我总是可以将参数更改为两个整数,但我更喜欢使用如上所示的对象。如果我忘记添加内容,请告诉我!
答案 0 :(得分:2)
为属性恢复set;
。
如果从提供的数据创建了一个新的Paging实例,但由于属性值未在空构造函数中设置,并且不可设置,因此它们仍然是默认值。