下一个和上一个总是转到第1页

时间:2016-06-06 02:16:11

标签: asp.net twitter-bootstrap asp.net-mvc-5

Prev和Next的链接总是转到第1页。但是所有其他带号码的页面都会转到所需的页面:请帮忙。我添加了@prev和@next以便我可以看到它们的值,它显示如果我在第5页,前一个是4而下一个是6.但是点击Prev和Next按钮后,我总是会结束在第1页。

<ul class="pagination btn-lg">

@{ int currentPage = (int)ViewBag.CurrentPage;}

@if (currentPage > 5)
{
    int prev = (int)ViewBag.CurrentPage - 1;
    @prev
    <li><a href=@Url.Action("Index", new { prev }) >Prev</a></li>
}

@{ int offset;        
    offset = currentPage - 4 <= 0 ? 1 : currentPage - 4;
    int maxPages = offset + 9 > ViewBag.Pages ? (int)ViewBag.Pages : offset + 9;
    }
@for (int page = offset; page <= maxPages; page++)
{        

    if (page == ViewBag.CurrentPage)
    {
        <li class="active"><a href=@Url.Action("Index", new { page }) >@page</a></li>
    }
    else
    {
        <li><a href=@Url.Action("Index", new { page })>@page</a></li>
    }
}

@if (maxPages < ViewBag.Pages)
{
    int next = currentPage + 1;
    @next 
    <li><a href=@Url.Action("Index", new { next })>Next @next</a></li>
}

public ActionResult Index(int? page)
    {
        Models.Items items = new Models.Items();
        items.loadItems(page.HasValue ? (int)page : 1);
        ViewBag.Items = items.items;
        ViewBag.Pages = (items.ItemCount / Models.Items.itemsPerPage) + 1;
        ViewBag.CurrentPage = page.HasValue ? (int)page : 1;
        return View();
    }

1 个答案:

答案 0 :(得分:1)

您使用

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    // sender is your Cell, it includes the image and string, 
    // pass them to next view controller is ok,
    // use them in SecondViewController's viewDidLoad() is ok.
    let cell = sender as! UITableViewCell
    let secondViewController = SecondViewController()
    secondViewController.image = cell.imageView?.image
    secondViewController.text = cell.textLabel?.text
}

正在生成<a href=@Url.Action("Index", new { prev })>Prev</a> (假设href=".../Index?prev=2"的值),因此您为prev=2发送了一个值,但prev没有一个值(并且您的代码将其设置为默认值 - page

将链接更改为

page = 1

并且同上<a href="@Url.Action("Index", new { page = prev }")>Prev</a> 和(推荐)new { page = next }

旁注:您也可以使用

new { page = page }