4

大家好,我有一个问题,我可以在 PartialViewResult 操作中使用 PagedList 并在 PartialView 中显示结果吗?

这是一些代码

控制器代码:

public PartialViewResult CargosPorProyecto(string id, int? page)
    {
        var cargos = db.Cargo.Include(i => i.Proyectos).Where(i => i.NumProyecto.Equals(id)).OrderByDescending(i => i.Fecha);

        if (Request.HttpMethod != "GET")
        {
            page = 1;
        }

        var pageSize = 10;
        var pageNumber = (page ?? 1);
        var onePage = cargos.ToPagedList(pageNumber, pageSize);


        return PartialView("ListaCargosParcial", ViewBag.OnePage = onePage);
    }

在我的 PartialView 中,我输入了这段代码来显示分页

<div class="pagination-right">
    <div class="span12">
       <%: Html.PagedListPager((IPagedList)ViewBag.OnePage, page => Url.Action("CargosPorProyecto", new { page = page }), new PagedListRenderOptions { LinkToFirstPageFormat = "<< Primera", LinkToPreviousPageFormat = "< Anterior", LinkToNextPageFormat = "Siguiente >", LinkToLastPageFormat = "&Uacute;ltima >>" })%> 
    </div>                    
    </div>

当我加载包含部分视图的页面时,一切看起来都很好,但是当我单击下一步(“Siguiente”)时,我的部分视图中没有加载。

我希望我解释清楚并感谢您的时间。

问候

4

1 回答 1

2

如果您想留在同一页面上,可以使用 AJAX。例如,如果您使用 jQuery,您可以订阅分页链接的点击事件,然后触发对相应控制器操作的 AJAX 请求,并使用返回的结果刷新部分:

$(function() {
    $('.pagination-right a').click(function() {
        $.ajax({
            url: this.href,
            type: 'GET',
            cache: false,
            success: function(result) {
                // refresh the contents of some container div for the partial
                // make sure you use the correct selector here
                $('#some_container_for_the_partial').html(result);
            }
        });

        // cancel the default action which is a redirect
        return false;
    });
});
于 2012-06-29T06:45:23.460 回答