如果找不到用户,我希望能够向他们显示错误消息,然后单击确定后将其返回到主页。
if (userID == -1)
{
ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "alertMessage", "alert('Account not recognised.')", true);
Response.Redirect("AboutForm.aspx");
}
我希望看到警报弹出并能够单击它,然后将其重定向到主页。但是,我的实际结果跳过了警报,并带我回到主页。
答案 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>");
}