public async Task <ActionResult> List([FromQuery] ResourceParameters resourceParameters) { var list = await Work.Role.GetList(resourceParameters); var previousPageLink = list.HasPrevious ? Help.CreateResourceUri(resourceParameters, ResourceUriType.PreviousPage, nameof(List)) : null; var nextPageLink = list.HasNext ? Help.CreateResourceUri(resourceParameters, ResourceUriType.NextPage, nameof(List)) : null; var paginationMetadata = new { totalCount = list.TotalCount, pageSize = list.PageSize, currentPage = list.CurrentPage, totalPages = list.TotalPages, previousPageLink, nextPageLink }; Response.Headers.Add("X-Pagination", Newtonsoft.Json.JsonConvert .SerializeObject(paginationMetadata)); var personViews = _mapper.Map <IEnumerable <RoleDtoForReadUpdate> >(list); return(new JsonResult(personViews)); }