【问题标题】:Ajax only pagination in ASP.NET MVC with PagedList.MVC or similar使用 PagedList.MVC 或类似方法在 ASP.NET MVC 中仅 Ajax 分页
【发布时间】:2012-06-22 12:06:55
【问题描述】:

我使用 troygoode 的 PagedList 在我的 ASP.NET MVC 应用程序中输出分页链接http://nuget.org/packages/PagedList.Mvc

我在控制器中创建分页列表,然后将其传递给视图,该视图使用 @Html.PagedlistPager 为分页链接生成 html。这会生成一堆链接,例如 /Store?search=bla&page=1、/Store?search=bla&page=2 等。

大家一致认为 javascript 代码应尽可能与 html 分开,因此我将点击处理程序添加到单独的 javascript 文件中的所有分页链接。当然,在这些点击处理程序中,我执行了一个 ajax 请求来获取页面 X,该页面在服务器端呈现,然后转储到客户端页面上的 div 中——包括新的分页链接。

由于我为每个请求生成新的分页链接,因此每次完成新搜索或更改页面时,我都会添加这些点击处理程序。我从 ajax 的 OnSuccess 事件处理程序中执行此操作。

这很好用。即使禁用了javascript,用户也可以浏览页面,因为它会退回到常规href。最好的优雅降级。

但是,我的应用程序有一个不同的部分,要求用户在记录作业时选择一个商店,而且它只是严格的 ajax。在这种情况下,我希望分页链接的 href 为“javascript:void(0);”。问题是,当为这些链接添加点击处理程序时,我现在无法知道 ajax 调用应该发布到哪个 url。

我想我可以只使用链接的文本值——“1”、“2”、“3”等。但是“下一个”和“上一个”链接呢?另外,这样做感觉不对。

理想情况下,PagedList.MVC 可以选择在每个页面链接中放置 data-page="X" 属性,然后我可以在我的点击处理程序中使用它,但事实上这样的选项在如此流行的 .net 扩展让我相信我提出的解决方案不是理想或首选的解决方案。

我的方法合乎逻辑吗?或者有没有更好的方法来做到这一点。我是否需要编写自己的帮助程序来代替 PageList.MVC 的标准帮助程序?我只需要一个以前做过这件事并且对他们的方法有信心的人的指导。

感谢阅读

【问题讨论】:

    标签: jquery ajax asp.net-mvc pagination


    【解决方案1】:

    看看我刚刚推入的对不显眼的 AJAX 的支持:

    https://github.com/TroyGoode/PagedList/issues/26#issuecomment-6471793

    【讨论】:

    • 我最终创建了自己的实现,我认为你需要一些认真的工作。
    猜你喜欢
    • 2013-06-24
    • 2012-10-16
    • 1970-01-01
    • 2013-05-31
    • 1970-01-01
    • 1970-01-01
    • 2022-01-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多