繁体   English   中英

C#asp.net第二页未显示

[英]c# asp.net second page not showing

问题是我使用列表来填充html页面,但是我想实现分页。 现在第一页没有问题,但是只要按下第二页按钮或其他任何按钮,我都会得到空白页,好像什么也没发生。

(我会给我的控制器部分,因为其余部分不是必需的)

控制器:

//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传呼机:

@Html.PagedListPager((IPagedList)ViewBag.links, page => Url.Action("RequestLinks", new { page }))

如果需要更多信息进行解释或帮助,请随时询问。

编辑:

也许与路线等有关?

答案1:

我认为,当您使用Url.Action(..) ,需要为传递的每个路由值参数提供名称。

例如:

@Html.PagedListPager((IPagedList)ViewBag.links, pageNumber => Url.Action("RequestLinks", new { page = pageNumber }))

在这里,我使用pageNumber作为谓词中变量的名称,并显式地将page命名为我正在设置的route参数的名称,假设所需的操作是:

public ActionResult RequestLinks( int? page = null ) {
    // ...
}

答案2:

您的操作要求始终传递URL,以便下载链接,而在当前示例中,URL 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM