У меня есть одна ошибка в моем представлении, которая вызывает другой ActionResult, содержащий Pagedlist. На текущей странице я выбираю частоту выплат, и это перенаправляет на представление, которое выполняет PayRun за выбранный период. Когда я запускаю платежную ведомость после выбора частоты выплат, я получаю «IPagedList» не содержит определения для «PayDayId», и не может быть найден метод расширения «PayDayId», принимающий первый аргумент типа «IPagedList» (вы пропустили директива об использовании или сборка
В ChoosePayCode.cshtml у меня есть:
@model MMM_SYSTEM.Models.PayRun.PayRun
...
<div class="form-group">
@Html.LabelFor(model => model.PayDayId, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-5">
@Html.DropDownListFor(m => m.PayDayId, Model.PayDayCodes, "Please Select", htmlAttributes: new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.PayDayId, "", new { @class = "text-danger" })
</div>
</div>
У меня уже есть пакеты Nuget для пейджинга, и на них есть ссылки в соответствующем представлении, как показано ниже (PayRun.cshtml):
@using PagedList;
@model IPagedList<MIHR_SYSTEM.Models.PayRun.PayRun>
<div id="wrapper">
@if (Model.Count() <= 0)
{
<tr> <td colspan="3"> No record found </td> </tr>
}
else
{
foreach (var item in Model)
{
<tr>
<td>@Html.DisplayFor(modelItem => item.EmployeeNumber)</td>
<td>@Html.DisplayFor(modelItem => item.PayDayDate)</td>
<td>@Html.DisplayFor(modelItem => item.GrossPay)</td>
</tr>
}
}
@Html.PagedListPager(Model, PageNumber => Url.Action("Index", new {
PageNumber }))
</div>
Я попытался изменить ChoosePayCode.cshtml, как показано ниже, но ошибка все еще сохраняется, вместо этого Razor показывает, что в этом случае он не может применить индексирование:
<th>
@Html.LabelFor(model => model[0].PayDayId, htmlAttributes: new { @class = "control-label col-md-2" })
</th>
В контроллере у меня есть:
public ActionResult Payroll(int? PageNumber)
List<Models.PayRun.PayRun> payruns = new List<Models.PayRun.PayRun>();
{
using (SqlConnection conn = new SqlConnection(Helpers.DatabaseConnect))
{
...
...
conn.Open();
cmd.ExecuteNonQuery();
}
payruns.Add(payrun);
}
conn.Close();
}
IPagedList<Models.PayRun.PayRun> payrunss = payruns.ToPagedList(PageNumber ?? 1, 8);
return View(payrunss);
}
Я искал несколько источников, но до сих пор не могу понять, где я неправильно понял. Есть предложения о том, где я должен измениться?