我正在教自己MVC概念,希望将它们应用于非OO /程序开发环境。我很确定我理解简单的视图 - >请求 - >控制器 - >请求 - >型号 - >回复 - >控制器 - >回复 - >查看流程。
我正在努力解决的是更复杂的场景。例如,假设我有一个带有“计算运费”按钮的购物车表格。通常,单击此按钮将遵循上述流程。但如果缺少数据,如邮政编码怎么办?视图是否应首先验证此信息并在进行“计算运输”请求之前提醒用户?或者是否应该发出请求并且模型返回关键数据丢失的通知?如果是后者,Controller是否会指示View提醒用户?如果我想提示用户输入缺失的邮政编码(可能是在弹出式输入显示中),然后再次自动请求“计算运费”方法,该怎么办?
我认为这会引发一个观点应该是多么聪明的问题。似乎MVC由于更丰富的用户界面和自动化(例如数据绑定)而发展,并且这从纯粹的MVC角度来看水。非常感谢任何想法。
答案 0 :(得分:0)
你可以做一些事情:
提醒:一旦页面发布,您仍需要在服务器上再次验证数据。永远不要相信来自网页的数据,即使它已在客户端验证过。
答案 1 :(得分:0)
我自己的想法是,为了提高效率,尽可能在视图中进行,只要没有数据含义。
换句话说,视图可以检查丢失的邮政编码或非数字邮政编码(只要您确定数据模型不会允许非数字化)。
但是,您决定检查数据的第二个(例如“邮政编码是美国大陆的有效邮件吗?”),应该参考数据模型本身。
我见过使用一系列正则表达式创建视图以进行预验证(每个字段一个)的情况,以免对其他层造成不必要的负担。这意味着输入的数据至少会通过第一层完整性检查,然后再传回以进行更完整的验证。
另外,在提及检查用户输入内容时,不要在用户文档中使用术语“健全性检查”。您可能认为这是一个无辜的短语,但用户并不总是这么认为: - )