【发布时间】:2012-08-30 14:36:49
【问题描述】:
我是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 参数,我想从View 传递给Action。我怎么能指望View 已经加载了多少部分视图以及每个部分有多少学生?或者将此参数传递给操作是一种不好的做法,也许我应该在其他地方处理它(例如某些服务)?请建议正确的方法来做到这一点。谢谢。
附:请随意编辑标题,因为我想不出合适的标题。
【问题讨论】:
标签: c# ajax asp.net-mvc asp.net-mvc-3 asp.net-mvc-4