单击警报后如何刷新到主页

时间:2019-05-23 09:04:31

标签: c# asp.net

如果找不到用户,我希望能够向他们显示错误消息,然后单击确定后将其返回到主页。

if (userID == -1)
{                               
    ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "alertMessage", "alert('Account not recognised.')", true);
    Response.Redirect("AboutForm.aspx");
}

我希望看到警报弹出并能够单击它,然后将其重定向到主页。但是,我的实际结果跳过了警报,并带我回到主页。

3 个答案:

答案 0 :(得分:1)

那是因为您在注册客户端脚本块后将进行重定向。 重定向时,它会擦除​​此页面的数据并开始“刷新”, 表示您的脚本注册绝不会通过重定向进行传输

删除重定向是解决方案。另外,如果您需要重定向到另一个页面,则需要在URL上包含某种查询字符串,其中包含可以在Page_Load的{​​{1}}上捕获的消息,并在此处注册客户端脚本

后者的示例:

AboutForm.aspx

if (userID == -1) { Response.Redirect("AboutForm.aspx?showError=true"); }

AboutForm.aspx

答案 1 :(得分:1)

alert命令是javascript客户端阻止操作,您的代码无效。 您可以尝试在alert命令后通过javascript代码重定向页面,然后,在用户单击警报弹出窗口的“确定”按钮之后,执行下一个js代码并重定向浏览器页面。

if (userID == -1)
{                               
    ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "usernotfound", "alert('Account not recognised.'); document.location.href='AboutForm.aspx';", true);
}

答案 2 :(得分:0)

另一种方法是

if (userID == -1)
{                               
  Response.Write("<script type='text/javascript'>");
  Response.Write("alert('Account not recognised.');");
  Response.Write("document.location.href='AboutForm.aspx';");
  Response.Write("</script>");
}