【发布时间】:2016-03-12 13:34:29
【问题描述】:
我正在尝试在Mvc 5 中使用Pagedlist 分页。分页工作正常,但是列表仅包含具有特定 ID 的事务。 id 通过Viewbag 传递,第一个列表出现,但是当我试图查看列表的第二页时,它不起作用,因为它需要不能为空的 id 号。我将 id 添加到 Url.Action 但仍然没有传递任何东西。还尝试查看视图中的 id 号,只是看看它是否有效并且什么都没有出现。有什么解决办法吗?
在第一个视图中传递 id 号并指向列表的链接。
<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 } ))
如果我在浏览器中手动输入 id,例如
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想出缺少检查帐户ID的错误
【问题讨论】:
-
返回视图时是否在
Statement()方法中设置ViewBag.CheckingAccountId的值?您需要显示控制器代码
标签: c# asp.net-mvc pagedlist