在 Web MVC 模型中,哪个类/对象具有调用 404 页面的责任/功能?它为什么有责任?我认为是路由器问题,但我问是为了以防万一。
$router->show_404("Unable to find controller.");
此外,404 页面应该是一个 View 还是只是一个模板?这里的标准做法是什么?
-- 更新,让事情更清晰 --
例如,如果我们同意 Router
类拥有调用 404 页面的功能/责任,那么我们是否应该将 Router
对象注入(inject)我们实例化的 Controller 每个 Controller 都可以使用 Router
对象来调用 404?或者我应该创建一个自定义类来显示“特殊页面”,如 Error/404s?
感谢您的回答。
最佳答案
视情况而定。
如果是由于路由无效,则可以由路由器本身处理,或者您可以使用指向 404 处理程序的默认路由。
如果是由于有效路由接收到无效数据(/user/JohnDoe
,但 John Doe 不为系统所知),则 404 必须由处理程序启动那条路线。
一旦 404 被触发,我倾向于选择轻便、快速的页面报告它,但是有很多网站会,例如,进行近似匹配搜索并返回一个列表“你是说其中一个吗这些东西?”我不确定在这两种情况下我将哪种方式称为“标准做法”,除非你谈论的是 REST API,它通常会发送最小响应,因为它们旨在提高机器可读性,所以没有太多提出一个只有人类才能回答的问题是有意义的。
关于model-view-controller - 在 Web MVC 框架中,谁负责显示 404 页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5610183/