我在本地调试(vs2010)没有问题,先进行客户端的javascript验证,可是我部署到服务器后(MVC3+IIS6),就会出现客户端验证失效的情况,直接去到后台验证,没有先在客户端验证,我并没有禁用javascript,请问各位有碰到这样的情况吗? 任何线索的非常感谢.......
问题看了是因为我的内容是ajax动态载入的,和validate的运行判断机制(页面载入的时候就判断了)有关,http://www.davidferguson.me.uk/Blogs/Post/mvc-3-validation-after-partialview-loaded-via-ajax 已经提到了一个相关的解决办法,还有一个插件版本, 但不理解的是为什么在本地调试可以正常验证, 在部署后出现问题(偶尔也能够验证)。 我的validate.js文件是不会每次ajax都载入的...
先确定是不是javascript没有运行的原因,可以写个简单的脚本测试一下
javascript是可以运行的,因为我页面上有个开窗函数就是调用javascript的,这个可以打开。
会不会你的js库引用的地址有误。
不是, 我查看了源代码,是正确的.
可能是路径 的问题。仔细 查 一下,看生产的html中的js引用的路径,点一下,看能不能找到。
可以看到,问题已经定位,在补充问题中已经说明了.
原来在部署后,我load的validate javascript文件每次都是返回的304,而不是重新载入,所以会导致验证失效(补充问题中的链接说明了原因),修改ajaxsetupsettings,将if-modified-since设置为false(这个是默认值,我之前设置为true了)。