Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 获取和显示大量数据的最佳实践_C#_.net_Asp.net Mvc - Fatal编程技术网

C# 获取和显示大量数据的最佳实践

C# 获取和显示大量数据的最佳实践,c#,.net,asp.net-mvc,C#,.net,Asp.net Mvc,正如标题所说,我正在用.net实现一个显示许多图表和表格的网页 (注意:我以前没有使用.net的经验,但我有使用其他语言的经验。所以实现对我来说并不难。问题是我想知道我所做的是否“正确”) 因此,本页假设显示一组具有不同数据集的图表和表格。目前,我正在用MVC实现它,其中控制器一次获取所有数据,然后返回包含保存所有数据的对象的视图 事情是这样的: public interface IPagedList<T> : IList<T> { int PageCount {

正如标题所说,我正在用.net实现一个显示许多图表和表格的网页

(注意:我以前没有使用.net的经验,但我有使用其他语言的经验。所以实现对我来说并不难。问题是我想知道我所做的是否“正确”)

因此,本页假设显示一组具有不同数据集的图表和表格。目前,我正在用MVC实现它,其中控制器一次获取所有数据,然后返回包含保存所有数据的对象的视图

事情是这样的:

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,是的,这就是我所想的,因为我正在寻找最好的实践。