Asp.net mvc 如何将数据列表传递给视图

Asp.net mvc 如何将数据列表传递给视图,asp.net-mvc,model-view-controller,Asp.net Mvc,Model View Controller,实际上,我想在一个视图上生成一个申请者列表(超过1000个),因为我正在使用sql数据读取器生成一个列表并传递给视图,但当记录超过500个时,要在视图上显示需要花费大量时间(4到5秒),这是正常的 { 公共静态应用程序列表GetListSend(字符串类别,字符串细分) { 字符串os=“N”; 如果(类别=“SCOS”) os=“Y”; 申请人应用程序;//申请人类包含姓名、地址、电话等//// applicationslist AppList=new applicationslist();/

实际上,我想在一个视图上生成一个申请者列表(超过1000个),因为我正在使用sql数据读取器生成一个列表并传递给视图,但当记录超过500个时,要在视图上显示需要花费大量时间(4到5秒),这是正常的

{

公共静态应用程序列表GetListSend(字符串类别,字符串细分) { 字符串os=“N”; 如果(类别=“SCOS”) os=“Y”; 申请人应用程序;//申请人类包含姓名、地址、电话等//// applicationslist AppList=new applicationslist();//applicationlst类列表类型// 字符串sqlcon=ConfigurationManager.ConnectionString[“ConnectionString”].ConnectionString.ToString(); SqlConnection con=新的SqlConnection(sqlcon); con.Open(); string SqlQuery=“选择[idno]、[ApplicationName]、[Address]、[Status],将[SCOBC]中的(varchar(10)、DateOfApplication,103)转换为DateOfApplication,其中(状态='Pending With Dealing Assistant'和类别='“+category+”),细分V=“+SubDiv+”,操作系统=“+os+”,按idno排序”; SqlCommand cmd=新的SqlCommand(SqlQuery,con); SqlDataReader sdr=null; sdr=cmd.ExecuteReader(); 如果(特别提款权) { while(sdr.Read()) { App=新申请人(); App.IdNo=sdr[“IdNo”].ToString(); App.Name=sdr[“applicationName”].ToString(); App.Address=sdr[“Address”].ToString(); App.Status=sdr[“Status”].ToString(); App.DateOfApp=sdr[“DateOfApplication”].ToString(); 添加(App)


}

我不知道数据库调用需要4-5秒是否正常,但不正常的是在单个视图上显示1000个项目的列表,而不实现分页


当您实现分页时,不仅会使页面更小,更易于从用户处读取,而且会大大提高性能,因为您将只获取所需的内容。当然,为了使分页有效,必须在SQL Server上完成。

看到包含如此多数据的页面需要花费很长时间才能恢复,这并不罕见下一步是确定页面生命周期的哪一部分占用了这么多时间。可能是SQL调用、HTML的呈现,或者其他什么,但你确实需要限制问题的范围,以便有效地计划如何解决它。我已经看到SQL查询非常快,但数据量很大HTML页面如此之大,以至于web浏览器永远无法呈现它。

是否可以先生成列表(循环),然后生成genrate视图(再次使用循环)?那么你需要优化你的SQL查询,以减少执行时间。如果不能优化,你需要购买更快的硬件,升级带宽等。不要期待奇迹。你能发布一些代码,让我们可以确切地看到你目前是如何做的吗?我是新手,我尝试复制粘贴代码,但只有最后一次你是用代码形式写的吗?
            }
            sdr.Close();
            con.Close();
        }
        return AppList;
    }