我的asp.net应用程序有一个母版页,一个内容页面和一个用户控件。
在主母版页中,有一个链接会将fancybox显示为iframe。 iframe有一个登录页面的表单。 iframe是一个新的母版页,其中包含登录的内容页面,该页面具有用户对登录的控制权。
当用户点击按钮登录时,服务器端检查凭据是否正常,如果没有则显示消息。所有这些都带有自定义验证器。
我的问题是,当用户第一次单击按钮进行登录时,它会检查正常,但如果凭据不正确并且用户重新填写它们,我会在firefox上收到以下错误
Error: Sys.WebForms.PageRequestManagerServerErrorException:
Sys.WebForms.PageRequestManagerServerErrorException: the state information is invalid
for this page and might be corrupted http.../jquery-1.7.2.js
在我有的主页上
<%-- jQuery --%>
<script src="<%= ResolveClientUrl("~/Template/Scripts/jquery-1.7.2.js") %>"
type="text/javascript"></script>
<%-- jQueryUI --%>
<script src="<%= ResolveClientUrl("~/Template/jqueryui/js/jquery-ui-1.8.21.custom.min.js") %>"
<script type="text/javascript" src="<%= ResolveClientUrl("~/Template/Scripts/jquery.fancybox-1.4.3.min.js") %>">
</script>
<script type="text/javascript" charset="utf-8">
$(document).ready(function () {
$("#LoginLightBox").fancybox({
width: 300,
height: 750,
scrolling: "no"
});
$("#RegistroLightbox").fancybox({
width: 300,
height: 750,
scrolling: "no"
});
});
</script>
<asp:ContentPlaceHolder ID="HeadContent" runat="server">
</asp:ContentPlaceHolder>
<body id="page1">
<form id="Form1" runat="server">
<asp:ScriptManager ID="ScriptManager" runat="server">
</asp:ScriptManager>
<div >
<li style="display:inline"><a class="labelsTipolinks" id="LoginLightBox" href="Login.aspx?iframe=true">Login</a></li>
<li style="display:inline;color: #C53005;">|</li>
<li style="display:inline"><a class="labelsTipolinks" id="RegistroLightbox" href="RegistroUsuario.aspx?iframe=true">Registro</a></li>
在内容页面上:
<%@ Register TagPrefix="uc1" TagName="Login" Src="~/Controles/Login.ascx" %>
最后是用户控件:
<div style="margin-top: 20px">
<asp:UpdatePanel runat="server" ID="updPanelLoginIncorrecto">
<ContentTemplate>
<asp:CustomValidator ForeColor="Red" OnServerValidate="usuarioExistente_Validation"
Display="Static" Font-Size="Small" runat="server" ID="vldLogin"
ValidationGroup="grupoValidacionLoginUsuario"
Text="<%$ Resources:LocalizedText, MsjError_LoginIncorrecto%>">
</asp:CustomValidator>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="btnLoginLightbox" EventName="Click" />
</Triggers>
</asp:UpdatePanel>
</div>
<div class="tableContent" style="float: right;">
<asp:Button CssClass="button" ID="btnLoginLightbox" Text="Login" runat="server" OnClick="btnLogin_Click"
ValidationGroup="grupoValidacionLoginUsuario" />
</div>
请帮助这让我发疯。我已经尝试将eventvalidation设置为false,sessions,response.cache.setno ......等但没有一个工作。
修改
我得到错误的行是在jquery 1.7.2.js上,并且在jQuery.dequeue(elem,type)的行上;
编辑2
我最终将fancybox作为内联元素放在master中,但它不是我想要的解决方案。请帮帮我!!!!!
答案 0 :(得分:2)
经过数周的尝试,我尝试输入类型:“iframe”并且神奇地工作了!我不知道该怎么做但是现在它有效:) 所以代码是:
<script type="text/javascript" charset="utf-8">
$(document).ready(function () {
$("#LoginLightBox").fancybox({
type: "iframe",
width: 300,
height: 750,
scrolling: "no"
});
$("#RegistroLightbox").fancybox({
type: "iframe",
width: 300,
height: 750,
scrolling: "no"
});
});
</script>
答案 1 :(得分:0)
我过去遇到过类似的问题。我认为它涉及在母版页的<% %>
中使用<head>
,但我可能会弄错。用这个替换你的母版页,让我知道它是否解决了这个问题。
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.21/jquery-ui.min.js"></script>
<script type="text/javascript" src="~/Template/Scripts/jquery.fancybox-1.4.3.min.js">
</script>
<script type="text/javascript">
$(document).ready(function () {
$("#LoginLightBox").fancybox({
width: 300,
height: 750,
scrolling: "no"
});
$("#RegistroLightbox").fancybox({
width: 300,
height: 750,
scrolling: "no"
});
});
</script>
<asp:ContentPlaceHolder ID="HeadContent" runat="server">
</asp:ContentPlaceHolder>
</head>
<body id="page1">
<form id="Form1" runat="server">
<asp:ScriptManager ID="ScriptManager" runat="server">
</asp:ScriptManager>
<div>
<ul>
<li style="display:inline"><a class="labelsTipolinks" id="LoginLightBox" href="Login.aspx?iframe=true">Login</a></li>
<li style="display:inline;color: #C53005;">|</li>
<li style="display:inline"><a class="labelsTipolinks" id="RegistroLightbox" href="RegistroUsuario.aspx?iframe=true">Registro</a></li>
</ul>
</div>
</form>
</body>
</html>