如何从MVC中的数据库加载记录页面?

时间:2014-06-18 05:25:44

标签: asp.net-mvc asp.net-mvc-3

我正在开发MVC应用程序。 我在数据库中有大约8000条记录。

我使用MVC.Grid来显示这些记录。 我的问题是,我在控制器方法中加载了所有8000条记录。 我想以页面方式或部分记录来获取它,例如每次100条记录......

怎么做?

      public ActionResult Index(int? page, string searchContent = "")
        {

            ProductService productService = new ProductService();


            var pageNumber = (page ?? 1);
            var pagesize = 15;

            int id = Convert.ToInt32(Session["loggedEmpId"]);
            CommonService.SetEmployeeId(id);

            ProductService ProductService = new ProductService();
            var productList = ProductService.GetProductInventory();

            LocationService locationservice = new LocationService();

            var loclist = locationservice.GetAll().Where(x => x.Type != LocationTypeDTO.HO).ToList();
            ViewBag.loc = loclist;
            ViewBag.SearchContent = searchContent;

            return View(productList.ToPagedList(pageNumber, pagesize));

        }



   public IEnumerable<ProductDTO> GetProductInventory()
        {
            List<ProductDTO> ProductDTOList = new List<ProductDTO>();
            UnitOfWork uow = new UnitOfWork();
            IEnumerable<Product> ProductList = uow.ProductRepo.GetInventoryList();
            foreach (Product product in ProductList)
            {
                ProductDTO productDTO = Transform.Product2DTO(product);
                ProductDTOList.Add(productDTO);
            }
            return ProductDTOList;
        }

2 个答案:

答案 0 :(得分:1)

如果您只想从数据库中获取前100条记录,那么您可以更改服务方法,如 -

var loclist = locationservice.GetAll().Where(x => x.Type != LocationTypeDTO.HO).Take(100).ToList();

答案 1 :(得分:0)

99%的百分比你不应该显示所有8000条记录。

您应该使用pagination。您应该在操作中获得100条记录并显示它。

<强>更新 你有非常混乱和错误的代码。 您应该使用Take()和Skip()来处理您的请求。

我不知道ToPagedList方法

是做什么的