Strange behaviour on postback in ASP.NET

Posted by C-King on Stack Overflow See other posts from Stack Overflow or by C-King
Published on 2010-03-26T16:11:27Z Indexed on 2010/03/26 16:13 UTC
Read the original article Hit count: 228

Filed under:
|
|

I'm working on a website with a login form. To log in, a postback is used to an OnClick handler in the codebehind.
Somehow, the value returned from the Text-property of the username and password textboxes is ten times the value I entered, separated by commas. I checked my entire code for double ID's (which seems to be the most common problem causing this behaviour), but I found each ID defined only once.

In the ASPX file I have this:

<asp:Label ID="lblFeedback" ForeColor="Red" Font-Bold="true" runat="server" Visible="false" /><br />
        <asp:Panel ID="pnlLogin" runat="server">
            <table style="border-style: none;">
                <tr>
                    <td>
                        <asp:Label ID="lblUsername" AssociatedControlID="txtUsername" runat="server" />
                    </td>
                    <td>
                        <asp:TextBox ID="txtUsername" runat="server" /><br />
                    </td>
                </tr>
                <tr>
                    <td>
                        <asp:Label ID="lblPassword" AssociatedControlID="txtPassword" runat="server" />
                    </td>
                    <td>
                        <asp:TextBox ID="txtPassword" runat="server" TextMode="password" /><br />
                    </td>
                </tr>
                <tr>
                    <td>
                    </td>
                    <td>
                        <asp:Button ID="btnLogin" OnClick="btnLogin_Click" runat="server" />
                    </td>
                </tr>
            </table>
        </asp:Panel>

The OnClick handler in the Codebehind:

protected void btnLogin_Click(object sender, EventArgs e)
    {
        string username = Util.Escape(txtUsername.Text);
        string password = Util.Escape(txtPassword.Text);

        WebsiteUser user = WebsiteUser.Create(username, password);
        if (user != null)
        {
            //Set some session variables and redirect to user profile
        }
        else
        {
            lblFeedback.Text = Localizer.Translate("INVALID_LOGIN");
            lblFeedback.ForeColor = Color.Red;
            lblFeedback.Visible = true;
            pnlLogin.Visible = true;
        }
    }

The website is running on ASP.NET 2.0 on ISS 5.1 (Win XP Pro)

© Stack Overflow or respective owner

Related posts about c#

Related posts about ASP.NET