我有一个使用JQuery和ASP.NET UpdatePanel和ScriptManager的ASP.NET站点。特别是在一个页面上,我收到一个javascript错误:
sys.webforms.pagerequestmanagerservererrorexception: Index and length must refer to a location within the string. Parameter name:length
ScriptResourse.axd 代码:0
编辑: 只有在我将代码发布到测试服务器时,才会在我的开发环境中发生此错误。
以下是母版页中的内容:
<asp:ScriptManager runat="server" ID="ScriptMgr"></asp:ScriptManager>
<asp:UpdatePanel runat="server" ID="UpdatePanelMaster">
<ContentTemplate>
</ContentTemplate>
</asp:UpdatePanel>
在相关页面中:
<asp:Content ID="ContentHeadEdit" ContentPlaceHolderID="ContentHeadMaster" Runat="Server">
<script type="text/javascript">
$(document).ready(function() {
$('#<%= ButtonSave.ClientID %>').button();
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
function EndRequestHandler(sender, args) {
$('#<%= ButtonSave.ClientID %>').button();
}
});
</script>
</asp:Content>
答案 0 :(得分:2)
我遇到了同样的问题并最终通过删除所有AJAX控件来解决它,直到我有一个没有UpdatePanel的基本表单(这隐藏了正在发生的真正的服务器端错误)。事实证明,错误是后面的代码中的纯c#问题。
答案 1 :(得分:1)
这是服务器端代码中的错误。如果你运行debug(打破错误),你应该得到你的行号。或者,您可以浏览代码隐藏,以查找使用index
和length
参数的代码行。它看起来像某种字符串操作调用,length
的值是负数或大于您正在处理的字符串的长度。