繁体   English   中英

ASP.Net MVC3:远程验证调用未触发

[英]ASP.Net MVC3: Remote validation calls not firing

我有一个数据输入表单,它设置了远程验证来检查数据库中某个字段的现有值。

这是发生的事情:

  1. 转到创建页面(数据输入表单)。 为字段输入值 X。

  2. 场失去焦点。 调用远程验证。 Fiddler 显示呼叫。

  3. 单击保存。 记录已保存; 页切换到索引页。

  4. 再次进入创建页面。 再次为字段输入值 Y。

  5. 场失去焦点。 调用远程验证(每个 Fiddler)。

  6. 单击保存。 记录已保存; 页切换到索引页。

  7. 转到再次创建页面并为字段输入 X(再次)。

  8. 场失去焦点。 没发生什么事。 不调用远程验证(每个 Fiddler)。

  9. 单击保存。 没有调用远程验证。 页面尝试保存记录,但数据库将其回吐。

就好像创建页面正在记住该字段的先前值也是 X,并且没有重新验证它,因为它没有更改,即使我在此期间去过其他页面。

我没有将模型传递给 Create 视图:我无法想象它在哪里得到该字段具有正在(或未)更改的先前值的想法。

据我所知,没有使用OutputCache 如果重要的话,我使用的是 IE 8。

好吧,我想我已经想通了。 不仅仅是您不能使用 OutputCache 来缓存您的结果,您还必须明确说不要缓存您的验证结果。 有关解释和示例,请参见此处

ETA:可能发生的另一件事是,如果第一次远程验证调用失败(例如,返回 500 错误),则不会再次调用它。 因此,如果您预计您的验证例程会不时被空数据调用(因为您的字段尚未填写),您需要使参数为空并在验证代码中说明这一点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM