-2

我使用 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 的标准帮助程序?我只需要一个以前做过这个并且对他们的方法有信心的人的指导。

谢谢阅读

4

1 回答 1

0

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

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

于 2012-06-21T01:03:39.017 回答