[ASP.NET]RequiredFieldValidator的一个很奇怪的问题

最近用.net作了一个网站。
在本地机上测试所有表单的RequiredFieldValidator控件都能正常验证后提交,
但是放到运行的服务器上就不能用了,表现是点击提交时,RequiredFieldValidator能够进行验证,但是如果验证都通过了就没反应了,不会真正提交。
 
我是在windows xp上用visual studio 2003做的,.net framework版本是一样的都是1.1.4322.573。
服务器上是windows server 2003。
我又放到本地机的另一个系统windows 2003下运行,结果也正常,郁闷坏了。
 
刚开始通过重新生成button事件、创建新的页面、修改button属性等各种方式,都没有效果。
把客户端生成的html内容进行对比。
本地机:
<script language="javascript" type="text/javascript">
<!--
var Page_ValidationActive = false;
if (typeof(clientInformation) != "undefined" && clientInformation.appName.indexOf("Explorer") != -1) {
    if ((typeof(Page_ValidationVer) != "undefined") && (Page_ValidationVer == "125"))
        ValidatorOnLoad();
}
 
function ValidatorOnSubmit() {
    if (Page_ValidationActive) {
        return ValidatorCommonOnSubmit();
    }
    return true;
}
// -->
</script>
服务器:
<script language="javascript" type="text/javascript">
<!--
var Page_ValidationActive = false;
if (typeof(clientInformation) != "undefined" && clientInformation.appName.indexOf("Explorer") != -1) {
    if (typeof(Page_ValidationVer) == "undefined")
        alert("无法找到脚本库“/aspnet_client/system_web/1_1_4322/WebUIValidation.js”。请尝试手动放置此文件,或通过运行“aspnet_regiis -c”重新安装。");
    else if (Page_ValidationVer != "125")
        alert("此页使用了 WebUIValidation.js 的错误版本。此页应该使用版本 125。脚本库为 " + Page_ValidationVer + "。");
    else
        ValidatorOnLoad();
}
 
function ValidatorOnSubmit() {
    if (Page_ValidationActive) {
        return ValidatorCommonOnSubmit();
    }
    return true;
}
// -->
</script>
在网上搜了一下,有人说把服务器上可能是缺aspnet_client目录,。
看了服务器wwwroot下,“/aspnet_client/system_web/1_1_4322/WebUIValidation.js”确实存在,而且“var Page_ValidationVer = "125";”。
怀疑windows server 2003自动安装的.net framework版本不对,找了个独立的安装文件安装时提示已经装过了,看来.net framework相关的应该没问题。
究竟哪里不对呢?
 
后来发现一个页面的button可以正常提交,于是就把界面复制过来,再逐步添加不正常页面的控件,终于发现在有requiredfieldvalidator时就不能正常提交,删掉后就能提交。
requiredfieldvalidator的,应该还是“aspnet_client有问题吧。
仔细看了一眼“WebUIValidation.js”文件,突然发现和本机的日期、大小都有差异。
把本机的复制过去,果然OK,呜呜呜呜!!!
 
结论:windows server 2003自带的aspnet_client很可能有问题,建议拷贝个最新的,有requiredfieldvalidator的页面不正常时需要考虑到此项可能
posted @ 2010-03-22 15:35  laoding  阅读(542)  评论(0编辑  收藏  举报