如何在MVC中使用ajax url数据加载分页JSONResult?

如何在MVC中使用ajax url数据加载分页JSONResult?,json,model-view-controller,jsonresult,Json,Model View Controller,Jsonresult,我在MVC中使用json结果数据分页时遇到问题。 下面的代码是我的ajax数据加载: jQuery.ajax({ url: "/Products/Search", type: "POST", dataType: "json", success: function (data) { displayData(data); }, error: function (errdata, e

我在MVC中使用json结果数据分页时遇到问题。 下面的代码是我的ajax数据加载:

jQuery.ajax({
        url: "/Products/Search",
        type: "POST",
        dataType: "json",
        success: function (data) {
            displayData(data);
        },
        error: function (errdata, errdata1, errdata2) { $('#ProductList').html("Error in connect to server" + errdata.responseText); }
我的控制器
JsonResult
如下:

public JsonResult List()
        {
            tbl = db.tblProducts;
            return Json(tbl, JsonRequestBehavior.AllowGet);
        }
我可以从上面的ajax数据加载成功接收数据,但我无法对其分页。 请帮帮我。
谢谢。

没有用于分页的代码,您要进行客户端分页还是服务器端分页

考虑开发一个ASP.NETMVC应用程序

服务器端分页:您可以单独加载特定数量的记录。 使用Skip和Take函数

public JsonResult GetOrders(int pagesize, int pagenum)
        {
            var query = Request.QueryString;
            var dbResult = db.Database.SqlQuery<Order>(this.BuildQuery(query));
            var orders = from order in dbResult
                        select new Order
                        {
                            ShippedDate = order.ShippedDate,
                            ShipName = order.ShipName,
                            ShipAddress = order.ShipAddress,
                            ShipCity = order.ShipCity,
                            ShipCountry = order.ShipCountry
                        };
            var total = dbResult.Count();
            orders = orders.Skip(pagesize * pagenum).Take(pagesize);
            var result = new
            {
                TotalRows = total,
                Rows = orders
            };
            return Json(result, JsonRequestBehavior.AllowGet);
        }
public JsonResult GetOrders(int pagesize,int pagenum)
{
var query=Request.QueryString;
var dbResult=db.Database.SqlQuery(this.BuildQuery(query));
var orders=来自dbResult中的订单
选择新订单
{
ShippedDate=order.ShippedDate,
ShipName=order.ShipName,
ShipAddress=order.ShipAddress,
ShipCity=order.ShipCity,
ShipCountry=order.ShipCountry
};
var total=dbResult.Count();
orders=orders.Skip(pagesize*pagenum)。Take(pagesize);
var结果=新
{
TotalRows=总计,
行=订单
};
返回Json(结果,JsonRequestBehavior.AllowGet);
}
客户端分页:将整个记录加载到您的视图中,然后执行分页

示例代码:

签出
Database db = new Database();
public int PageSize = 5;
public int VisiblePageCount = 5;

public JsonResult Search(int page = 1)
    {
        var model = new ModelName();
        var tbl = db.tblProducts;

        var renderedScheduleItems =(tbl.Skip((page - 1) * PageSize)
                .Take(PageSize)
                .ToList());
        model.Products = renderedScheduleItems;
        model.PagingDetail = new PagingDetail()
        {
            CurrentPage = page,
            ItemsPerPage = PageSize,
            TotalItems = items.Count,
            VisiblePageCount = VisiblePageCount
        };

        return Json(model, JsonRequestBehavior.AllowGet); 
    }