按钮单击不在ASP.NET中的面板回发中工作

时间:2018-06-11 20:58:43

标签: c# asp.net

我有一个需要首先显示警告消息的应用程序 - 需要用户接受然后请求凭据。 所以,这就是我做的 - 我有一个带有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 发现表单身份验证导致问题。当第一篇文章发生时,它正在拦截表单提交 - 这是我不想要的。

1 个答案:

答案 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
    }