0

我正在使用 MVC 3 Ajax.BeginForm 调用通过客户端验证进行表单提交。输入字段之一是邮政编码(邮政编码),除了验证格式之外,我还想检查它是否存在于大约 200 万个条目的数据库表中。

我选择的解决方案是使用 BeginForm OnBegin 调用在提交之前执行查找,如果邮政编码不存在,则为用户提供接受或重新输入的选项。我正在使用另一个 Ajax 调用执行邮政编码查找

问题是我需要等待内部 Ajax 调用返回并处理响应,然后再返回到外部调用,但由于这是一个异步调用,因此在内部 Ajax 完成之前函数正在继续。

我可以看到几个非首选的解决方案,例如使内部 Ajax 调用同步或捕获提交按钮单击事件,但有没有人有一个干净的不显眼的解决方案的建议。

谢谢你。

4

1 回答 1

1

您可以使用该[Remote]属性来执行远程验证。您只需使用此属性装饰视图模型上的相应属性,然后指定将执行实际验证的控制器操作。

显然,无论您选择哪种解决方案,一旦在服务器上提交表单,您绝对必须执行相同的检查,因为在您最初使用 AJAX 检查和实际提交表单时,您的数据库数据可能会发生变化,并且最初有效的是不再有效。

于 2012-10-08T09:48:30.443 回答