Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.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
Javascript 使用ajax动态返回数量可变的模型_Javascript_Jquery_.net_Asp.net Mvc - Fatal编程技术网

Javascript 使用ajax动态返回数量可变的模型

Javascript 使用ajax动态返回数量可变的模型,javascript,jquery,.net,asp.net-mvc,Javascript,Jquery,.net,Asp.net Mvc,我目前有如下代码,我将数据从控制器传递到视图,然后显示数据 使用ajax,我想调整我的视图,使其在通过控制器传递数据时更具动态性 目标: 此时,视图返回用户跟踪的人员的姓名列表。我想有一个设置变量,例如maxShow=5,当页面加载时,最多会显示5个人。当用户滚动到页面底部时,ajax将获取并将下一个5放到dom中,这应该是一个连续的循环 我用jquery编写了一些粗略的伪代码,如下所示,用于动态加载每个人,但无法确定如何将调用限制为5人,然后滚动到最底部时再调用5人,以此类推。我唯一的一半解决

我目前有如下代码,我将数据从控制器传递到视图,然后显示数据

使用ajax,我想调整我的视图,使其在通过控制器传递数据时更具动态性

目标:

此时,视图返回用户跟踪的人员的姓名列表。我想有一个设置变量,例如maxShow=5,当页面加载时,最多会显示5个人。当用户滚动到页面底部时,ajax将获取并将下一个5放到dom中,这应该是一个连续的循环

我用jquery编写了一些粗略的伪代码,如下所示,用于动态加载每个人,但无法确定如何将调用限制为5人,然后滚动到最底部时再调用5人,以此类推。我唯一的一半解决方案是将下面的查询改为。在结尾处取(5)

$(window).scroll(function() {
   if($(window).scrollTop() + $(window).height() == $(document).height()) {
       // Make an Ajax call 
     $.get("/Following",function(data){
      $("#div").html(data);
      });
     }

看法

@model Gighub3.ViewModels.FollowingViewModel
@{
ViewBag.Title=“以下”;
}
@模型标题
    @foreach(模型中的var following.following) {
  • @下面是我的名字
  • }

我觉得您需要实现某种分页<代码>\u上下文。以下需要应用排序依据,然后将
限制
(一次要获取的结果数,例如5)和
开始
(您当前所在的页面,即此人向下滚动多少次以触发更多关注者的请求)参数添加到ajax请求中。然后,您可以执行以下操作:

_context.Followings.OrderBy(*/something in here*/).Skip((start - 1) * limit).Take(limit)

您需要为“counter”设置一个全局javascript变量,在每次进行ajax调用时递增该变量,并将其传递给控制器方法,以便使用
.Skip().Take()
在您的查询中,对于某些外部/业务因素,您无法将参数传递给Skip and Take方法的特定场景,您将如何处理您如何找到更新Skip的方法@StephenMueckei如果浏览器不向服务器发送值,则服务器无法知道您接下来需要哪组记录。不清楚为什么不能将方法更改为
public ActionResult Following(int page)
忽略我问题中的代码,ActionResult本身不执行查询,而是在ActionResult中调用一个方法getData(),getData()返回任务模型(我想要的数据),该模型被传递给ActionResult。然而,我的ajax是针对ActionResult的,出于业务需求的原因,我无法在task getData()中传递参数,也无法考虑在ActionResult中使用参数,因为查询是在getData()中完成的。抱歉,如果解释得很糟糕@StephenMueckeYou将一个值传递给ActionResult方法(比如传递给
int page
参数),然后使用
var data=getData()过滤结果。跳过(第*x页)。取(x)
where
x
是您想要的记录数(尽管如此,它不会有效,因为您的
getData()
方法每次都会返回所有记录,而不是查询数据库并只返回您想要的
x
记录
@model Gighub3.ViewModels.FollowingViewModel

@{
    ViewBag.Title = "Following";
}

<h1>@Model.Heading</h1>

<ul>
    @foreach (var following in Model.Following)
    {
        <li>@following.Name</li>
    }
</ul>
_context.Followings.OrderBy(*/something in here*/).Skip((start - 1) * limit).Take(limit)