C# 获取和显示大量数据的最佳实践
正如标题所说,我正在用.net实现一个显示许多图表和表格的网页 (注意:我以前没有使用.net的经验,但我有使用其他语言的经验。所以实现对我来说并不难。问题是我想知道我所做的是否“正确”) 因此,本页假设显示一组具有不同数据集的图表和表格。目前,我正在用MVC实现它,其中控制器一次获取所有数据,然后返回包含保存所有数据的对象的视图 事情是这样的:C# 获取和显示大量数据的最佳实践,c#,.net,asp.net-mvc,C#,.net,Asp.net Mvc,正如标题所说,我正在用.net实现一个显示许多图表和表格的网页 (注意:我以前没有使用.net的经验,但我有使用其他语言的经验。所以实现对我来说并不难。问题是我想知道我所做的是否“正确”) 因此,本页假设显示一组具有不同数据集的图表和表格。目前,我正在用MVC实现它,其中控制器一次获取所有数据,然后返回包含保存所有数据的对象的视图 事情是这样的: public interface IPagedList<T> : IList<T> { int PageCount {
public interface IPagedList<T> : IList<T>
{
int PageCount { get; }
int TotalItemCount { get; }
int PageIndex { get; }
int PageNumber { get; }
int PageSize { get; }
bool HasPreviousPage { get; }
bool HasNextPage { get; }
bool IsFirstPage { get; }
bool IsLastPage { get; }
}
型号:
public class AViewModel
{
Public List<ClassofData1> DataForTable1 { get; set; }
Public List<ClassofData2> DataForTable2 { get; set; }
Public List<ClassofData3> DataForChart1 { get; set; }
Public List<ClassofData4> DataForChart2 { get; set; }
... //repeat for dozen of time :)
}
public class AController : Controller
{
public ActionResult Index()
{
AViewModel DataforView = mew AViewModel();
DataforView.DataForTable1 = Fetch1(); //im oversimplifying here, but it basically goes like this
DataforView.DataForTable2 = Fetch2();
DataforView.DataForChart1 = Fetch3();
DataforView.DataForChart2 = Fetch4();
... //repeat for another dozen of time :)
return View("Index", DataforView);
}
}
然后在HTML页面上显示所有内容
这样实施可以吗?将所有这些数据加载到单个viewmodel中,并在HTML页面上“转储”所有数据
或者我应该制作一堆API,HTML页面逐个调用这些API来获取这些数据,而不是像我那样在索引控制器中一次加载所有内容?您需要一个pigining。这里有一个例子 简而言之,您应该执行已排序的请求(默认情况下,以ID为例) 您的操作应如下所示:
ActionResult Search(string query, int startIndex, int pageSize) {...}
你的回答应该是这样的:
public interface IPagedList<T> : IList<T>
{
int PageCount { get; }
int TotalItemCount { get; }
int PageIndex { get; }
int PageNumber { get; }
int PageSize { get; }
bool HasPreviousPage { get; }
bool HasNextPage { get; }
bool IsFirstPage { get; }
bool IsLastPage { get; }
}
你在用哪个图表?我们可以使用JSON数组绑定它吗?如果可以使用JS绑定它,那么您应该创建不同的操作来获取图表数据。并将javascript方法中的图表绑定到document ready上。视图不应该获取数据,而应该只显示ViewModel中的数据。那么,这是否意味着我所做的一切正常@SirRufoim使用highchart.js,是的,这就是我所想的,因为我正在寻找最好的实践。