Я пытаюсь использовать Pagedlist
нумерацию страниц в Mvc 5
. Пагинация работает нормально, однако список содержит транзакции только с определенным идентификатором. Идентификатор передается с помощью Viewbag
, и появляется первый список, но когда я пытаюсь просмотреть вторую страницу списка, он не будет работать, потому что для этого требуется номер идентификатора, который не может быть нулевым. Я добавил идентификатор в Url.Action
, но все равно ничего не передает. Также попытался просмотреть идентификационный номер в представлении, просто чтобы посмотреть, работает ли он, и ничего не появляется. Любое решение?
Ссылка в первом представлении, которая передает идентификационный номер и ведет к списку.
<a href="@Url.Action("Statement", "CheckingAccount", new { checkingAccountId = ViewBag.CheckingAccountId })" class="btn btn-primary btn-lg btn-block">
<span class="glyphicon glyphicon-print"></span> Print Statement
</a>
Разбивка на страницы отображается, но не может получить доступ ко второму или любому другому биту списка. Я использовал следующий проход дальше по тому же идентификационному номеру, но ничего.
@Html.PagedListPager(Model, page => Url.Action("Statement", new { page, PageSize = Model.PageSize, checkingAccountId = ViewBag.CheckingAccountId } ))
Если я вручную наберу идентификатор в браузере, например
statement?page=1&pageSize=4&CheckingAccountId=1
это работает, но мне нужно, чтобы это было передано через PagedListPager
Это в моем контроллере
public ActionResult Statement(int checkingAccountId, int page = 1, int pageSize = 4)
{
var checkingAccount = db.CheckingAccounts.Find(checkingAccountId);
List<Transaction> statement = checkingAccount.Transactions.ToList();
ViewBag.CheckingAccountId = checkingAccountId;
PagedList<Transaction> model = new PagedList<Transaction>(statement, page, pageSize);
return View(model);
}
Когда я запущу его, он перенесет меня на /statement?checkingAccountId=1
, который работает и показывает первые 4 оператора, но когда я пытаюсь увидеть остальную часть оператора, PagedListPager
будет иметь только statement?Page=1&pageSize=4
, который выдаст ошибку из-за отсутствия checkAccountId
ViewBag.CheckingAccountId
в методеStatement()
при возврате представления? Вам нужно показать код контроллера - person   schedule 13.03.2016