我有一个需要首先显示警告消息的应用程序 - 需要用户接受然后请求凭据。 所以,这就是我做的 - 我有一个带有2个面板的表单 - 1)带有Accept按钮的警告和2)使用登录按钮登录。 在页面加载时,我设置了visibility属性,panel 1 visible = true,panel 2 visible = false。 在“接受”按钮上单击,切换面板的可见性 - 面板2 visible = true,面板1 visible = false。 输入凭据并单击“登录”进行用户身份验证,然后输入应用程序。
该方法在本地主机上运行良好,但在服务器上运行不正常。 它会在FF中弹出“XML解析错误:找不到元素”错误,并在第一次按钮点击时在IE和chrome中显示空白页面。
编辑代码段
<script runat="server">
public void btnLogin_Click(object sender, EventArgs args)
{
if (method.Authenticate(user.Text, pass.Text))
FormsAuthentication.RedirectFromLoginPage(user.Text, true);
else
Panelwarning.Visible = true;
Msg.Text = "Login failed";
PanelLogin.Visible =false;
}
public void btnAcpt_Click(object sender, EventArgs args)
{
PanelLogin.Visible =true;
Panelwarning.Visible = false;
}
public void Page_Load (object sender, EventArgs args)
{
PanelLogin.Visible =false;
Panelwarning.Visible = true;
}
</script>
<form id="form1" runat="server" >
<asp:Panel ID="Panelwarning" runat="server" >
<p class ="ex1"> Warning message</p>
<div align="center">
<asp:Button ID="IAcceptButton" runat="Server" CssClass="button" OnClick="btnAcpt_Click" onmouseout="this.className='button'" onmouseover="this.className='button buttonhover'" Text="I Accept" />
</div>
</asp:Panel>
<asp:Panel ID="PanelLogin" runat="server">
<fieldset>
<h4> login information goes here</h4>
<asp:Button ID="LoginButton" runat="Server" CssClass="button" OnClick="btnLogin_Click" onmouseout="this.className='button'" onmouseover="this.className='button buttonhover'" Text="Login"/>
</fieldset>
</asp:Panel>
</form>
的Web.config
<compilation targetFramework="4.6.1" debug="true"/>
<authentication mode="Forms">
<forms loginUrl="/Login.aspx" />
</authentication>
编辑2 发现表单身份验证导致问题。当第一篇文章发生时,它正在拦截表单提交 - 这是我不想要的。
答案 0 :(得分:0)
由于没有提供代码,因此很难确定错误的原因。看看这个帖子,其中说URL上的无效字符(如果您使用参数)可能是原点:
https://forums.asp.net/t/1004395.aspx?What+causes+this+XML+Parsing+Error+no+element+found
<强>更新强>
您错过了{}
条款中的大括号else
:
public void btnLogin_Click(object sender, EventArgs args)
{
if (method.Authenticate(user.Text, pass.Text))
FormsAuthentication.RedirectFromLoginPage(user.Text, true);
else
{ // <-- Missing
Panelwarning.Visible = true;
Msg.Text = "Login failed";
PanelLogin.Visible =false;
} // <-- Missing
}