Cha*_*ler 5 model-view-controller
在 MVC Web 应用程序中,放置代码/逻辑以显示指向“下一页”导航控件、控制器或视图的 url 链接的“正确”位置在哪里?如果我把它放在视图中,我不仅要向视图传递要显示在当前页面上的数据,还要传递与下一页相关的数据,也就是下一页的页面 ID。如果我把它放在控制器中,控制器必须知道特定视图将要显示的导航。对我来说,这两种方法都不是很优雅。还有其他方法吗?
我不知道是否真的有“正确”的方法来做到这一点。不过,我会考虑以下一些不同的方式:
我的直觉告诉你,你应该努力将所有分页逻辑保留在视图中。这通常意味着您需要某种方法来基于视图中的当前页面来计算下一页的内容,或者使控制器对结果集中的起点有一些概念。我通常采用后者 - 视图使用可选起点(即上一页上最后一项的 ID)检索数据。这样,分页逻辑就在视图中,数据检索也很简单。
需要注意的事情之一是,如果您键入的项目不再存在,您将如何处理检索下一页数据。换句话说,如果你的链接说“项目A后面的第一页”并且“项目A”已被删除,那么你需要做一些合理的事情。