如果我有一个表单在http://foo.com/get
页面上,但是发布到http://foo.com/post
上,那么处理显示验证错误的最好方法是什么?我想将用户重定向回第一个页面。我如何隐藏表单状态(包括错误消息),以便在重定向到http://foo.com/get之后的下一个请求中,我可以获取该表单并呈现它。有什么想法吗?
发布于 2010-06-29 00:50:56
您可以使用会话,但它需要一些机器。
如果成功,您将存储一条要显示的消息。出错时,存储一条消息、输入的表单数据的完整列表以及每个出错字段的标志。接收页面必须从会话中读取这些内容,做正确的事情,并将其清除。
通过一些谨慎的设计决策,您可以避免每次拥有显示表单的页面时都必须重写这些内容。下面是我如何实现这一点的更多信息(我不能分享代码本身,但不管怎样,它都不是那么好):
如果我的表单验证类检测到错误的提交,它会自动将数据存储在会话中,并且我的表单呈现类在每次实例化它时都会检查它。它也会覆盖数据库中的数据(假设你正在编辑一个已有的记录)。我的会话接口自动清除过时的消息和表单数据。(在这里,您必须小心使用AJAX或其他可能在访问会话信息时过早清除它的内容。)
https://stackoverflow.com/questions/3137068
复制相似问题