停止表格消失

时间:2013-06-01 18:13:07

标签: c# jquery asp.net jquery-validate

我有以下html登录表单和代码,其背后几乎按预期工作。如果用户提供无效凭据,我希望表单保留并显示标签InvalidCredentialsMessage。但是,表单会在LoginButton_Click事件后关闭。

导致表单关闭的原因是什么?如果只提供错误的凭据,我该如何阻止它关闭?

TestPage.aspx:

<div id="login">
<a href="#" id="lclose"></a>

        <form action="#" runat="server">
            <fieldset>
                <div class="frame">
                    <h4>Login</h4>
                    <small>Sign in to your account.</small>
                    <div class="clear"></div>
                    <input type="text" value="Username" class="input-text autoclear" />
                    <input type="password" value="Password" class="input-text autoclear"/>
                </div>

                <div class="separator"></div>
                <Label id="InvalidCredentialsMessage" runat="server" ForeColor="Red" 
        Text="Your username or password is invalid. Please try again."      
        Visible="False"></Label> </p>
                <div class="separator"></div>

                <div>
                <input type="submit" value="Sign in" class="input-submit float-right" runat="server" onserverclick="LoginButton_Click"/>
                <a href="#" class="float-left">Forgot your password?</a>
                </div>

            </fieldset>
        </form>

</div>

TestPage.aspx.cs:

protected void LoginButton_Click(object sender, EventArgs e)
{
    // Validate the user against the Membership framework user store
    if (Membership.ValidateUser(Un.Value, Pw.Value))
    {
        // Log the user into the site
        FormsAuthentication.RedirectFromLoginPage(Un.Value,true);
    }
    // If we reach here, the user's credentials were invalid
    InvalidCredentialsMessage.Visible = true;
}

编辑:

我正在尝试从工作同事的模板中学习asp.net。自发布问题以来,我一直在更详细地研究事情,并发现了以下内容。打开时窗体显示为全屏,提交/关闭时显示消失。我假设这是使用jQuery / AJAX来控制表单,因为有一个jquery.form.js文件?

CSS包含

.lclose {position:absolute;top:15px;right:15px;font-size:11px;background:url(../img/lclose.jpg) no-repeat top left;width:11px;height:12px;display:block;}

#login .input-submit {background:url(../img/login-input-submit.jpg) no-repeat top left;width:75px;height:25px;padding-bottom:2px;line-height:25px;cursor:pointer;color:#656565;font-weight:bold;margin-top:-5px;}

1 个答案:

答案 0 :(得分:-1)

尝试使用

Response.Redirect(Request.RawUrl)

登录失败时。这会将您重定向到同一页面。 否则,如果您希望验证异步发生,则使用AJAX。这将在不关闭表单的情况下进行身份验证。