在“后退”按钮上验证的一步一步问题

时间:2010-12-13 15:59:14

标签: asp.net-mvc-2 data-annotations

我有一个3步表单,我在具有DataAnnotation的ViewModel上为每一步绑定。一切正常,但是当我点击我的“上一个”按钮时,验证被调用,如果缺少值,则用户必须填写所有必填字段。如果我使用操作链接,则数据将不会保留。我在这里寻找的是一种在不调用验证的情况下保存我的值的方法。我也考虑使用cookies,但我不认为这是最好的方式。

有任何想法或建议吗?

2 个答案:

答案 0 :(得分:1)

我为向导页面的每一步使用单独的模型。我还确保之前的点击没有达到触发验证检查的ModelState.IsValid。

我使用存储在SQL Server中的会话状态存储每个步骤的结果。你也可以使用隐藏变量,但我不喜欢这个解决方案。

如果您需要更多详细信息或显示一些代码供我们查看,请添加评论。

答案 1 :(得分:1)

在经过大量搜索之后,我找到了一个解决方案,让一个向导像多个表单一样,前一个和下一个按钮不会从Data Annotation和MicrosoftMvcValidation.js调用客户端验证。我找到了这个帖子:jQuery Validation plugin: disable validation for specified submit buttons女巫只是在提交按钮中添加了一个类,但它不适合我,所以我再看一遍,找到了这个:http://forums.asp.net/p/1622628/4165648.aspx女巫有解决方案为我工作在javascript:document.getElementById(“someButton”)。disableValidation = true; 我更喜欢jQuery解决方案,所以我可以用我的按钮的class属性做一些事情,但它今天起作用了,我花了很多时间时间在此。

希望它有助于其他一些尝试在MVC2中执行“取消”按钮或向导形式的向导,并希望将表单发布到控制器,以便他需要清除验证。