Asp.NET关于Response.Write()弹框问题
这是登录按钮的单击事件代码:stringname=this.TextBox1.Text;stringpwd=this.TextBox2.Text;TempUsertem=...
这是登录按钮的单击事件代码:
string name = this.TextBox1.Text;
string pwd = this.TextBox2.Text;
TempUser tem = TempUserManager.DoLogin(name, pwd);
if (tem != null)
{
Session["User"] = tem;
Response.Write("<script>window.alert('登录成功!');</script>");
Response.Redirect("Default.aspx");
}
else
{
Response.Write("<script>window.alert('用户名或密码错误!');</script>");
this.TextBox1.Focus();
}
如果输入对的用户名密码,页面直接跳转了,不弹出消息框;
可是如果输入错误的用户名密码,会弹框,这是为什么啊? 展开
string name = this.TextBox1.Text;
string pwd = this.TextBox2.Text;
TempUser tem = TempUserManager.DoLogin(name, pwd);
if (tem != null)
{
Session["User"] = tem;
Response.Write("<script>window.alert('登录成功!');</script>");
Response.Redirect("Default.aspx");
}
else
{
Response.Write("<script>window.alert('用户名或密码错误!');</script>");
this.TextBox1.Focus();
}
如果输入对的用户名密码,页面直接跳转了,不弹出消息框;
可是如果输入错误的用户名密码,会弹框,这是为什么啊? 展开
6个回答
展开全部
javascript 在本地执行
而 Response.Redirect("Default.aspx"); 是在服务器端执行,
也就是说当前还没有返回给客户浏览器 "<script>window.alert('登录成功!');</script>" 串,服务器就重定向到到了 Default.aspx 页面;
所以不会弹出;
如果想弹出警告框, 把代码改为: Response.Write("<script type=\"text/javascript\">window.alert(\"登录成功!\");window.location=\"你跳转的页面URL\"</script>");
把下面的 Response.Redirect("Default.aspx"); 注释掉
而 Response.Redirect("Default.aspx"); 是在服务器端执行,
也就是说当前还没有返回给客户浏览器 "<script>window.alert('登录成功!');</script>" 串,服务器就重定向到到了 Default.aspx 页面;
所以不会弹出;
如果想弹出警告框, 把代码改为: Response.Write("<script type=\"text/javascript\">window.alert(\"登录成功!\");window.location=\"你跳转的页面URL\"</script>");
把下面的 Response.Redirect("Default.aspx"); 注释掉
启帆信息
2024-11-19 广告
2024-11-19 广告
启帆信息是英伟达中国区代理商,原厂授权代理,提供全面的软件技术解决方案以及NVIDIA以太网产品、交换机等产品,欢迎前来咨询!...
点击进入详情页
本回答由启帆信息提供
展开全部
因为你已经跳转页面了。
如果你想弹框后跳转的话,用下面代码:
/// <summary>
/// 显示消息提示对话框,并进行页面跳转
/// </summary>
/// <param name="page">当前页面指针,一般为this</param>
/// <param name="msg">提示信息</param>
/// <param name="url">跳转的目标URL</param>
public static void ShowAndRedirects(System.Web.UI.Page page, string msg, string url)
{
StringBuilder Builder = new StringBuilder();
Builder.Append("<script language='javascript' defer>");
Builder.AppendFormat("alert('{0}');", msg);
Builder.AppendFormat("top.location.href='{0}'", url);
Builder.Append("</script>");
page.ClientScript.RegisterStartupScript(page.GetType(), "message", Builder.ToString());
}
如果你想弹框后跳转的话,用下面代码:
/// <summary>
/// 显示消息提示对话框,并进行页面跳转
/// </summary>
/// <param name="page">当前页面指针,一般为this</param>
/// <param name="msg">提示信息</param>
/// <param name="url">跳转的目标URL</param>
public static void ShowAndRedirects(System.Web.UI.Page page, string msg, string url)
{
StringBuilder Builder = new StringBuilder();
Builder.Append("<script language='javascript' defer>");
Builder.AppendFormat("alert('{0}');", msg);
Builder.AppendFormat("top.location.href='{0}'", url);
Builder.Append("</script>");
page.ClientScript.RegisterStartupScript(page.GetType(), "message", Builder.ToString());
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个原因很简单刚刚做web的人基本上都遇到过 虽然你alert()输出了可是因为当前的页面转到了别的页面所以没有弹出对话框
Response.Write("<script>alert('登录成功!');window.location.href='Default.aspx'</script>");
这样就会弹出对话框了 你可以试试
Response.Write("<script>alert('登录成功!');window.location.href='Default.aspx'</script>");
这样就会弹出对话框了 你可以试试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
弹出来了,只是已经跳转了,你看不到了。
如果想弹出来,点击后再跳转,可以用
string js = "<script language=javascript>alert('{0}');window.location.replace('{1}')</script>";
如果想弹出来,点击后再跳转,可以用
string js = "<script language=javascript>alert('{0}');window.location.replace('{1}')</script>";
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
对时也弹窗口,不过你已经跳转另一个页面了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询