我是新手ASP.NET MVC
,所以请帮我解决这个乍一看很简单的问题。
我有一张学生表,下面有View
一个Load More
链接。通过单击此链接,我需要使用 AJAX 加载更多学生记录。
所以这是我的View
(省略不必要的数据)
<table id="studentTable">
<thead>
...
</thead>
<tbody>
@Html.Partial("_StudentDetailsList", Model)
</tbody>
</table>
@Ajax.ActionLink("Load More", "LoadMoreStudents", new AjaxOptions
{
HttpMethod = "POST",
InsertionMode = InsertionMode.InsertAfter,
UpdateTargetId = "studentTable"
})
_StudentDetailsList
显示学生的局部视图
@model IEnumerable<MvcApplication1.Models.Student>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.LastName)
</td>
<td>
@Html.DisplayFor(modelItem => item.FirstName)
</td>
</tr>
}
行动
public ActionResult LoadMoreStudents(int skip = 0)
{
return PartialView("_StudentDetailsList", studentRepository.Get(orderBy: s => s.OrderBy(st => st.FirstName).OrderBy(st => st.LastName)).Skip(skip).Take(10));
}
如您所见,我想每次加载接下来的 10 个学生,但我必须知道已经加载了多少。所以问题是:我应该从哪里得到这个skip
我想传递给的Action
参数View
。我如何计算View
已经加载了多少局部视图以及每个局部视图有多少学生?或者将此参数传递给操作是一种不好的做法,也许我应该在其他地方处理它(例如某些服务)?请建议正确的方法来做到这一点。谢谢。
PS请随意编辑标题,因为我想不出合适的标题。