[英]ASP.Net MVC3: Remote validation calls not firing
我有一个数据输入表单,它设置了远程验证来检查数据库中某个字段的现有值。
这是发生的事情:
转到创建页面(数据输入表单)。 为字段输入值 X。
场失去焦点。 调用远程验证。 Fiddler 显示呼叫。
单击保存。 记录已保存; 页切换到索引页。
再次进入创建页面。 再次为字段输入值 Y。
场失去焦点。 调用远程验证(每个 Fiddler)。
单击保存。 记录已保存; 页切换到索引页。
转到再次创建页面并为字段输入 X(再次)。
场失去焦点。 没发生什么事。 不调用远程验证(每个 Fiddler)。
单击保存。 没有调用远程验证。 页面尝试保存记录,但数据库将其回吐。
就好像创建页面正在记住该字段的先前值也是 X,并且没有重新验证它,因为它没有更改,即使我在此期间去过其他页面。
我没有将模型传递给 Create 视图:我无法想象它在哪里得到该字段具有正在(或未)更改的先前值的想法。
据我所知,没有使用OutputCache
。 如果重要的话,我使用的是 IE 8。
好吧,我想我已经想通了。 不仅仅是您不能使用 OutputCache 来缓存您的结果,您还必须明确说不要缓存您的验证结果。 有关解释和示例,请参见此处。
ETA:可能发生的另一件事是,如果第一次远程验证调用失败(例如,返回 500 错误),则不会再次调用它。 因此,如果您预计您的验证例程会不时被空数据调用(因为您的字段尚未填写),您需要使参数为空并在验证代码中说明这一点。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.