【发布时间】:2021-08-17 01:57:18
【问题描述】:
[HttpGet("{pageNumber}{pageSize?}{filter?}{sortOrder?}", Name = "GetEntriesPaged")]
public ActionResult<List<Entry>> GetEntriesPaged(
int pageNumber, int pageSize = 10, string filter = "", string sortOrder = "desc") {
运行时异常:
System.ArgumentException:可选参数必须在末尾 段。在细分 '{pageNumber}{pageSize?}{filter?}{sortOrder?}',可选参数 “pageSize”后跟“过滤器”。参数名称:路由模板
有什么意义?正如所要求的那样,我在段的末尾有一个可选参数....
PS。更完整的代码:
[HttpGet]
public ActionResult<List<Entry>> GetAll() {
var result = _db.Entries.OrderByDescending(x => x.Date).ToList();
return result;
}
[HttpGet("{pageNumber}{pageSize?}{filter?}{sortOrder?}", Name = "GetEntriesPaged")]
public ActionResult<List<Entry>> GetEntriesPaged(int pageNumber = 1, int pageSize = 10, string filter = "", string sortOrder = "desc") {
int take = pageSize;
int skip = ((pageNumber - 1) * pageSize);
IQueryable<Entry> result;
if (sortOrder == "asc") {
result = _db.Entries.OrderBy(x => x.Date);
}
else {
result = _db.Entries.OrderByDescending(x => x.Date);
}
return result.Skip(skip).Take(take).Where(x => x.Origin.Contains(filter)).ToList();
}
[HttpGet("{id}", Name = "GetEntry")]
public ActionResult<Entry> GetById(long id) {
var item = _db.Entries.Find(id);
if (item == null) {
return NotFound();
}
return item;
}
我需要使用/entries GetAll() 方法,但要使用/esntries?pageNumber=3 GetEntriesPaged(...) 一个
【问题讨论】:
标签: c# asp.net-core asp.net-core-webapi