首页 > 解决方案 > 在 CSHTML 表中显示 +100.000 个条目需要花费大量时间

问题描述

我一直在研究我的应用程序,该应用程序显示一个包含实际市场上 Cars 条目的表格。由于此应用程序必须处理大量信息(超过 100.000 个条目),因此我无法将它们显示到 CSHTML 中的表格中(加载时间过长,可能超过 10 分钟)。

我将分享一些代码来向您展示它的实际编码方式:

public partial class Car
    {
        public string CarID { get; set; }
        public string Brand { get; set; }
        public string Price { get; set; }
    }

这是我的 Car.cs 类,这就是它在 CSHTML 表中的显示方式:

<script>
$(document).ready(function () {
    $('#carTable').DataTable(
    {
        lengthMenu: [5, 10, 25, 50],
    }
);
<script>

<table id="carTable" class="table table-striped table-responsive-sm table-bordered">
    <thead>
        <tr>
            <th>CarID <i class="fa fa-sort"></i></th>
            <th>Brand <i class="fa fa-sort"></i></th>
            <th>Price<i class="fa fa-sort"></i></th>
        </tr>
    </thead>
    <tbody>
        @foreach (var car in Model.CarsList)
        {
        <tr>
            <td data-sortable="true">@car.CarID</td>
            <td data-sortable="true">@car.Brand</td>
            <td data-sortable="true">@car.Price</td>
        }
        </tr>
        }
    </tbody>
</table>

这就是我如何在我的控制器中将它们添加到我的 ViewModel 中(它只有一个属性 --> IEnumerable CarsList):

public async Task<IActionResult> ShowCars(){
    CarViewModel cVM = new CarViewModel();
    var carsInMyDB = _context.Cars.ToList();
    cVM.CarsList = carsInMyDB;
    return View(cVM)
}

如前所述,必须在此表中加载超过 100.000 个条目,并且正确显示它们需要花费太多时间。

我可以提出哪些建议/更改来缩短加载时间?

感谢您的时间和答案!:D

标签: c#asp.net-mvcentity-frameworkasp.net-corerazor

解决方案


分页可能会有所帮助。此外,如果您希望所有这些都在一个页面上,请阅读延迟加载。


推荐阅读