c#asp.net第二页不显示
问题是我使用一个列表来填充一个html页面,但我想实现分页。现在第一页呈现没有问题,但只要我按第二页按钮或任何其他的事情,我只是得到一个空白页,就好像没有任何事情发生。c#asp.net第二页不显示
(我会给我的控制器的片导致作息不真的nenecessary)
控制器:如果需要对
@Html.PagedListPager((IPagedList)ViewBag.links, page => Url.Action("RequestLinks", new { page }))
任何信息
//input is a textfield from the webview which hold the url I want to use
public ActionResult RequestLinks(FormCollection input, int? page = null) {
List<string> links;
//FindLinks will give back a list of links retrieved from an url
links = FindLinks(input["url"].ToString(), download);
int pageSize = 25;
int pageNumber = page ?? 1;
ViewBag.links = links.ToPagedList(pageNumber, pageSize);
return View(links.ToPagedList(pageNumber, pageSize));
}
的Html寻呼机解释或帮助随时问。
编辑:
或许这是与路线等?
答案#1:
我认为,当你使用Url.Action(..)
你需要为每个传递路线值参数提供的名称。
例如:
@Html.PagedListPager((IPagedList)ViewBag.links, pageNumber => Url.Action("RequestLinks", new { page = pageNumber }))
在这里,我使用pageNumber
是从谓词的变量的名称,并明确命名page
作为路径参数我设置的名称,假设所需的动作是:
public ActionResult RequestLinks(int? page = null) {
// ...
}
答案#2:
您的操作要求URL始终通过以下载链接,而在您当前的示例中不是。当您关注链接时,FormCollection input
将不存在,它仅在最初的POST
之后。
你应该能够改变行动:
public ActionResult RequestLinks(string url, int? page = null) {
// Store it.
ViewBag.url = url;
// Everything else
// ...
}
然后在您的视图:
@Html.PagedListPager((IPagedList)ViewBag.links, pageNumber => Url.Action("RequestLinks", new { url = ViewBag.url, page = pageNumber }))
这(做一些假设)应该产生这样的联系:
/{controller}/RequestLinks?url=http://google.com&page=3
可悲的是,这对我不起作用,结果是一样的。看起来你只是在两者之间增加了一个与另一个完全相同的值。 – tribeldragon
@tribeldragon您可以将控制器操作方法签名添加到您的问题中吗? –
希望我添加了正确的东西。 – tribeldragon
ToPagedList函数将是相关的。 –
@SamAxe它是PagedList库的一部分。它将我的正常列表转换为IEnumerable。 – tribeldragon