私は初めてな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 適切なキャプションが思いつかないので、お気軽にキャプションを編集してください。