Я использую пейджинг в ASP.NET MVC, но теряю данные модели при переходе на следующую страницу.
Вот код:
Частичное представление:
@using PagedList;
@using PagedList.Mvc;
@model Models.MyObject
<link href="~/Content/PagedList.css" rel="stylesheet" type="text/css" />
<table class="table table-striped table-hover sortable">
<thead>
<tr>
<th width="240">@Model.HeaderNames[0]</th>
<th width="240">@Model.HeaderNames[1]</th>
<th width="240">@Model.HeaderNames[2]</th>
<th width="240">@Model.HeaderNames[3]</th>
<th width="120" class="no-sort"></th>
</tr>
</thead>
<tbody>
@foreach (var member in Model.PagedModelList)
{
<tr>
<td><span class="sort-field-value">@member.Thead1</span></td>
<td><span class="sort-field-value">@member.Thead2</span></td>
<td><span class="sort-field-value">@member.Thead3</span></td>
<td><span class="sort-field-value">@member.Thead4</span></td>
</tr>
}
</tbody>
</table>
<footer>
<div>
Page @(Model.PagedModelList.PageCount < Model.PagedModelList.PageNumber
? 0 : Model.PagedModelList.PageNumber) of @Model.PagedModelList.PageCount
@Html.PagedListPager(Model.PagedModelList, page =>Url.Action("Reports",new { @page = page, FirstLoad = false }))
</div>
</footer>
Контроллер:
public ActionResult Reports(MyObject model, int? page, bool FirstLoad = true)
{
model.pageSize = 4;
model.pageNumber = (page ?? 1);
if (FirstLoad)
{
// getting the data from database here
// ... code
// assigning pagemodelist
model.PagedModelList = model.ModelList.ToPagedList(model.pageNumber, model.pageSize);
}
// here sending the model and all is good
return PartialView("_MyView", model);
}
Модель
public class MyObject
{
public int SelectedPeriod { get; set; }
public List<SecondObject> ModelList = new List<Secondobject>();
public IPagedList<Secondobject> PagedModelList ;
public int pageSize { get; set; }
public int pageNumber { get; set; }
}
Второй класс модели:
public class SecondObject
{
public string Thead1 { get; set; }
public string Thead2 { get; set; }
public string Thead3 { get; set; }
public string Thead4 { get; set; }
}
Ожидается получение следующей страницы, но все, что я получаю, это пустая модель, которая вызывает нулевую ссылку при повторной отправке на просмотр из контроллера. Что я здесь не так делаю?
В первый раз я получаю правильные данные в модели, я показываю таблицу с правильными данными, затем, нажимая на следующую страницу, я отлаживаю в контроллере, чтобы получить пустое model.PagedModelList
, даже некоторые другие пустые свойства модели.
Любая помощь приветствуется