C# WebApi分页不工作,即使正确设置url参数,页面始终为0
api控制器方法如下所示:C# WebApi分页不工作,即使正确设置url参数,页面始终为0,c#,asp.net,asp.net-mvc,asp.net-web-api,asp.net-mvc-routing,C#,Asp.net,Asp.net Mvc,Asp.net Web Api,Asp.net Mvc Routing,api控制器方法如下所示: public IHttpActionResult GettblEmpleados(int page, int pageSize) { var query = db.SPEmpleadosIntranet().ToList(); var totalCount = query.Count(); var totalPages = (int)Math.Ceiling((d
public IHttpActionResult GettblEmpleados(int page, int pageSize)
{
var query = db.SPEmpleadosIntranet().ToList();
var totalCount = query.Count();
var totalPages = (int)Math.Ceiling((double)totalCount / pageSize);
var urlHelper = new UrlHelper(Request);
var prevLink = page > 0 ? urlHelper.Link("Empleados", new { page = page - 1, pageSize = pageSize }) : "";
var nextLink = page < totalPages - 1 ? urlHelper.Link("Empleados", new { page = page + 1, pageSize = pageSize }) : "";
var results = query
.Skip(pageSize * page)
.Take(pageSize)
.ToList();
return Ok(query);
}
这是环球航空公司
protected void Application_Start()
{
GlobalConfiguration.Configuration.Formatters.Clear();
GlobalConfiguration.Configuration.Formatters.Add(new JsonMediaTypeFormatter());
AreaRegistration.RegisterAllAreas();
GlobalConfiguration.Configure(WebApiConfig.Register);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
更新1
这里是webapiconfig
public static void Register(HttpConfiguration config)
{
// Web API configuration and services
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
在您当前的URL中,您没有提及您的操作 控制器/动作/参数 在您的webapiconfig中-->
在您当前的URL中,您没有提及您的操作 控制器/动作/参数 在您的webapiconfig中-->
您需要告诉该方法它与哪个Http方法匹配。尝试使用以下属性装饰它:
[HttpGet]
public IHttpActionResult GettblEmpleados(int page, int pageSize)
{
您需要告诉该方法它与哪个Http方法匹配。尝试使用以下属性装饰它:
[HttpGet]
public IHttpActionResult GettblEmpleados(int page, int pageSize)
{
因为您使用的是
config.maphttpAttribute路由()代码>您可以按如下方式使用,因为您正在使用,所以需要设置
[RoutePrefix(“api/Empleados”)]
公共类EmplicatoController:ApiController{
[路线(“,Name=“Empleados”)]
[HttpGet]
公共IHttpActionResult GettOS(整版页,整版页大小){
var query=db.SPEmpleadosIntranet().ToList();
var totalCount=query.Count();
var totalPages=(int)数学上限((double)totalCount/pageSize);
var urlHelper=新的urlHelper(请求);
var prevLink=page>0?urlHelper.Link(“Empleados”,新的{page=page-1,pageSize=pageSize}):”;
var nextLink=page
因为您使用的是config.maphttpAttribute路由()代码>您可以按如下方式使用,因为您正在使用,所以需要设置
[RoutePrefix(“api/Empleados”)]
公共类EmplicatoController:ApiController{
[路线(“,Name=“Empleados”)]
[HttpGet]
公共IHttpActionResult GettOS(整版页,整版页大小){
var query=db.SPEmpleadosIntranet().ToList();
var totalCount=query.Count();
var totalPages=(int)数学上限((double)totalCount/pageSize);
var urlHelper=新的urlHelper(请求);
var prevLink=page>0?urlHelper.Link(“Empleados”,新的{page=page-1,pageSize=pageSize}):”;
var nextLink=page
您的控制器的名称是什么?还有,您的路线配置是什么?控制器的名称是什么?还有,你的路线配置是什么?分享你的路线配置我粘贴在global上面。asaxI不得不说这是一个asp.net mvc应用程序,我在其中托管api控制器,那么我想我在global.asax上遗漏了一些内容。请查看关于WebApi-->路由的信息页面请查看webapiconfigShare您的路由配置我粘贴在global.asaxI上面。我必须说这是一个asp.net mvc应用程序,我在其中托管api控制器,那么我想我在global.asax上遗漏了一些内容。请查看关于WebApi-->路由的信息页面,请参阅webapiconfig
[HttpGet]
public IHttpActionResult GettblEmpleados(int page, int pageSize)
{
[RoutePrefix("api/Empleados")]
public class EmpleadosController : ApiController {
[Route("", Name="Empleados")]
[HttpGet]
public IHttpActionResult GettblEmpleados(int page, int pageSize) {
var query = db.SPEmpleadosIntranet().ToList();
var totalCount = query.Count();
var totalPages = (int)Math.Ceiling((double)totalCount / pageSize);
var urlHelper = new UrlHelper(Request);
var prevLink = page > 0 ? urlHelper.Link("Empleados", new { page = page - 1, pageSize = pageSize }) : "";
var nextLink = page < totalPages - 1 ? urlHelper.Link("Empleados", new { page = page + 1, pageSize = pageSize }) : "";
var results = query
.Skip(pageSize * page)
.Take(pageSize)
.ToList();
return Ok(query);
}
}