很旧的一个问题,MARK一下。
有很多人碰到如下问题,在页面上使用了RequiredFieldValidator之类的验证控件后,在页面提交数据(点击提交按钮时页面没有响应了)就没有反应了,于是很多人疑问,为什么在我本机上没出现过这种情况,一旦把它部署到服务器上就工作不正常了呢?
其实原因很简单,这是因为WebUIValidation.js版本不一致造成的。
我们都知道asp.net验证控件是靠wwwroot\aspnet_client\system_web\version\WebUIValidation.js 中脚本工作的,如果此脚本不存在,验证控件形同虚设,根本不起作用,如果服务器上只存在一个版本的.net framework根本就不会出现此问题(其实很多情况下是:服务器安装了windows server2003,因为win2003在安装时就已默认安装了2.0的框架,由于WEB程序是用.net 1.1.4322版本开发的。当部署上去时,这二个版本的验证脚本根本会一致,web程序是1.1.4322\WebUIValidation.js版本,服务器上是2.0\WebUIValidation.js)
解决方法:
第一种方法:将你开发时能用的版本覆盖服务器上的版本,文件路径片于IIS工作目录下:wwwroot\aspnet_client\system_web\version\WebUIValidation.js
第二种方法:使用命令 aspnet_regiis -c 将客户端脚本的此版本安装到每个 IIS 站点目录的 aspnet_client 子目录中。
%windir%\Microsoft.Net\FrameWork\version\aspnet_regiis -c
至此,再不会出现提交无响应的问题了。