我目前有如下所示的代码,我将数据从控制器传递到我的视图,然后显示数据。
使用ajax我想使我的视图适应通过控制器传递的数据更加动态。
目标:
此时,视图会返回用户关注的人员名单。我想要一个设定变量,例如maxShow = 5,加载页面时最多显示5个人。当用户滚动到页面底部时,ajax将获取并将下一个5放到dom上,这应该是一个连续循环。
我已经用jquery提出了一些粗略的伪代码,如下所示,如何动态加载每个人,但是无法弄清楚如何将调用限制为5个人,然后是另外5个人等等滚动到最底部时。我唯一的半解决方案是在最后将我的以下查询更改为.take(5)。
$(window).scroll(function() {
if($(window).scrollTop() + $(window).height() == $(document).height()) {
// Make an Ajax call
$.get("/Following",function(data){
$("#div").html(data);
});
}
[Authorize]
public ActionResult Following()
{
var userId = User.Identity.GetUserId();
var following = _context.Followings
.Where(x => x.FollowerId == userId)
.Select(a => a.Followee)
.ToList();
var viewModel = new FollowingViewModel
{
Following = following,
ShowActions = User.Identity.IsAuthenticated,
Heading = "People I'm following"
};
return View("following", viewModel);
}
查看
@model Gighub3.ViewModels.FollowingViewModel
@{
ViewBag.Title = "Following";
}
<h1>@Model.Heading</h1>
<ul>
@foreach (var following in Model.Following)
{
<li>@following.Name</li>
}
</ul>
答案 0 :(得分:0)
听起来我需要实现某种分页。 _context.Followings
需要对其进行排序,然后添加limit
(一次采取的结果数量,例如5)和start
(您当前所在的页面即{该人向下滚动多少次以触发对ajax请求的更多关注者参数的请求。然后你可以做类似的事情:
_context.Followings.OrderBy(*/something in here*/).Skip((start - 1) * limit).Take(limit)