通过在IIS 7.5中使用this.Form.Submit,视图状态无效

问题描述

|| 在IIS 7.5中通过使用this.Form.Submit查看状态无效 一个新的WebSite,我们在IIS 6.0上对其进行测试,就可以了。 但是,当我们在IIS 7.5上进行测试时,将显示“视图状态无效”。 错误信息:     端口:3739     用户代理:Mozilla / 4.0(兼容; MSIE 6.0; Windows NT 5.1; SV1)     ViewState:/ wEPDwUJOTM1 [*] MCIg ... System.FormatException:Base-64 char数组的长度无效 [*]已被删除,因为时间太长,但是\“ MCIg ... \”在日志中。 我检查源代码并找到下一部分:
<asp:Button ID=\"Btn_search\" runat=\"server\" CssClass=\"submitbutton\" 
   OnClientClick=\"javascript:this.disabled=true;this.form.submit();\"
   Text=\"Search\" UseSubmitBehavior=\"False\" OnClick=\"Btn_search_Click\" />
当我删除[OnClientClick = \“ javascript:this.disabled = true; this.form.submit(); \”]并删除[UseSubmitBehavior = \“ False \”]时。该页面将运行确定。 看起来像[this.form.submit]导致错误。 但是我测试如下  1. IIS 6.0,无代理,IE6.0或IE8.0,测试确定。  2. IIS 6.0,使用代理服务器,IE6.0或IE8.0,然后单击“测试”,然后单击“确定”。  3. IIS 7.5,使用代理,IE6.0或IE8.0,然后单击“测试”,然后单击“确定”。  4. IIS 7.5,无代理,IE6.0或IE8.0测试错误。 谁知道为什么,使用代理服务器就可以,否则出错。     

解决方法

        您的答案可能是__doPostBack()。在这里看看: 显式__doPostBack() 您的变体可能应如下所示:
<asp:Button ID=\"Btn_search\" runat=\"server\" CssClass=\"submitbutton\" 
   OnClientClick=\"this.disabled=true;__doPostBack(\'Btn_search\',\'\');return false;\"
   Text=\"Search\" OnClick=\"Btn_search_Click\" />