gpt4 book ai didi

c# - 如果 Asp 按钮不回发

转载 作者:行者123 更新时间:2023-11-30 16:00:45 26 4
gpt4 key购买 nike

我有一个登录框,它是用带有文本框的 jquery 制作的,然后是一个 asp:button,它验证并建立 session ,就像在代码中一样。

我做了一个标签,当用户名和密码错误并且你点击 asp: 按钮时出现,但是由于回发,登录框消失了。

 protected void Button1_Click(object sender, EventArgs e)
{
Connectons etc...
cmd.CommandText = "SELECT * FROM Users WHERE Email = @email AND password = @pass";
cmd.Parameters.Add("@email", SqlDbType.VarChar).Value = username.Text;
cmd.Parameters.Add("@pass", SqlDbType.VarChar).Value = password.Text;
conn.Open();
SqlDataReader reader = cmd.ExecuteReader();
if (reader.Read())
{
Session["user_id"] = reader["user_id"];
Session["username"] = reader["Username"];
Session["name"] = reader["Name"];
Session["password"] = reader["Password"];
Session["LoggedIn"] = true;
Session["role"] = reader["Role_id"];
if (Convert.ToInt32(reader["Role_id"]) == 1)
{
Response.Redirect("Admin/default.aspx");
}

else
{
Response.Redirect("default.aspx");
}

}

else
{

Label1.Text = "Login is wrong";

}

conn.Close();


}

如果登录错误,如何让按钮不回传?

        <a id="modal_trigger" href="#modal" class="btn btn-default">Log ind</a>

<div id="modal" class="popupContainer" style="display: none;"> </div>

$("#modal_trigger").leanModal({
top: 100,
overlay: 0.6,
closeButton: ".modal_close"
});

最佳答案

您的问题不在回发中,而是您使用的是预定义的登录框,该登录框仅在页面未处于回发状态时呈现。本质上,渲染代码假设每次登录都会成功。

要解决此问题,您需要找到创建预定义登录“框”的位置/时间/方式,并在“登录不正确”文本之后添加行以重新创建它。

以这种方式,如果第一次尝试失败,登录“框”将重新出现。

 if (Convert.ToInt32(reader["Role_id"]) == 1)
{
Response.Redirect("Admin/default.aspx");
}

else
{
Response.Redirect("default.aspx");
}

}

else
{

reDraw = true;
}

//this has page scope (outside all methods)
bool reDraw = false;

private void reDrawLogin(){
Label1.Text = "Login is wrong";
//re-render login box to allow for another try
string myScript = "\n<script type=\"text/javascript\" language=\"Javascript\" id=\"EventScriptBlock\">\n";
myScript += "style="display: block;visibility:visible">
myScript += "\n\n </script>";
Page.ClientScript.RegisterStartupScript(this.GetType(), "myKey", myScript, false);
}

//in your page_load, add:

if(isPostBack){
if(reDraw){
reDrawLogin();
reDraw=false;
}
}

不要忘记在您的 CONN 和 COM 中使用 USING!!!祝你好运。

关于c# - 如果 Asp 按钮不回发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39731357/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com