我有以下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;}
答案 0 :(得分:-1)
尝试使用
Response.Redirect(Request.RawUrl)
登录失败时。这会将您重定向到同一页面。 否则,如果您希望验证异步发生,则使用AJAX。这将在不关闭表单的情况下进行身份验证。