1

在我的 ASP.NET Web 表单中,我需要通知用户他们的反馈已提交。我打算通过在我的代码隐藏中这样做:

protected void lblButton_Click(object sender, EventArgs e) 
{

  Response.Redirect(Request.RawUrl); //Refresh page 
  Messagebox("Feedback submitted. Click OK to go back.");
  return;
}

public void Messagebox(string xMessage)
{
  Response.Write("<script>alert('" + xMessage + "')</script>");
}

但是,当我运行它时,我的页面总是在不显示消息框的情况下刷新。

如果我将 Response.Direct 与 Messagebox 交换,则没有任何变化。

我究竟做错了什么?

4

3 回答 3

4

我认为您必须在代码中使用 Response.Redirect(URL,false) ..

protected void lblButton_Click(object sender, EventArgs e) 
    {

      Response.Redirect(Request.RawUrl,false); //Refresh page 
      Messagebox("Feedback submitted. Click OK to go back.");
      return;
    }

Response.Redirect(URL,false):客户端被重定向到一个新页面,服务器上的当前页面将继续处理。

Response.Redirect(URL,true):客户端被重定向到一个新页面,但当前页面的处理被中止。

再次消息未显示然后尝试使用.....Javascript警报...

protected void lblButton_Click(object sender, EventArgs e) 
{
Response.Redirect(Request.RawUrl,false); //Refresh page 
ScriptManager.RegisterClientScriptBlock((Page)(HttpContext.Current.Handler), typeof(Page), "alert", "javascript:alert('Feedback submitted. Click OK to go back.');", true);
return;
}
于 2019-12-03T12:38:49.013 回答
3

警报是特定于页面的,因此即使显示警报对话框,它也会在客户端重定向后立即消失。

您需要的是从 lblButton_Click 返回的确认页面,该页面具有“确定”按钮、超链接或定时 js 函数,可将地址更改为您要重定向到的页面。

于 2019-12-03T12:56:53.163 回答
1

根据我得到的一个建议,我最终使用了一个带有 OK 按钮的确认页面,该按钮从 aspx 文件中调用:

<asp:Button runat="server" ID="btnSave" Click="btnSave_Click" Text="Save"
    OnClientClick="return confirm('Are you sure you want to do this thing?');"  />
于 2019-12-03T14:02:28.597 回答