aps.net1.1下出现表单不能提交的问题

有一个asp.net应用,当它作为虚拟目录发布到IIS的时候,一切正常;当它作为网站发布到IIS的时候,它所有的表单都提交不了了,按钮按上去没有任何反应。

使用ieHTTPHeaders工具查看,发现点击按钮后没有发送任何消息给服务器端,初步确定应该是前台的问题,很可能是js的问题。检查了页面源代码,其本身的js应该不存在什么问题。于是打开ie的脚本调试程序,在form的onsubmit函数内加入断点:

js 代码
 
  1. οnsubmit= "if (!ValidatorOnSubmit()) return false;"   
js 代码
 
  1. function  ValidatorOnSubmit() {  
  2.     if  (Page_ValidationActive) {  
  3.         return  ValidatorCommonOnSubmit();  
  4.     }  
  5.     return   true ;  
  6. }  

执行到

js 代码
 
  1. function  ValidatorCommonOnSubmit() {  
  2.     event.returnValue = !Page_BlockSubmit;  
  3.     Page_BlockSubmit = false ;  
  4. }  

发现它没有返回,相当于返回false,因此导致onsubmit返回false。

仔细检查了下,发现该应用下有一个目录aspnet_client\system_web\1_1_4322,正常情况下这个目录应该是在iis的根目录Inetpub\wwwroot下,在Inetpub\wwwroot下的WebUIValidation.js里该方法的代码为:

js 代码
 
  1. function  ValidatorCommonOnSubmit() {  
  2.     var  result = !Page_BlockSubmit;  
  3.     Page_BlockSubmit = false ;  
  4.     event.returnValue = result;  
  5.     return  result;  
  6. }  

而该应用下的WebUIValidation.js则为上面没有返回语句的代码。

js 代码
 
  1. "javascript"  type= "text/javascript"  src= "/aspnet_client/system_web/1_1_4322/WebUIValidation.js" >  


这样原因就很清楚了,当该应用作为虚拟目录发布的时候,页面引用的js是iis目录下的正确的js文件,所以不会有问题;当该应用作为网站发布的时候,页面引用了错误的js文件,因此无法提交。不清楚原作者为什么把aspnet_client\system_web\1_1_4322这个及其下面的文件放在应用里面,导致这个错误。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值