javascript - 仅在第一次访问 C# 网页时显示消息

标签 javascript c# asp.net

通过此代码,我使用 C# 从服务器端在 ASP.Net 中显示 JavaScript 警报消息框。

但是我只需要在第一次访问网页时显示该消息,如何解决这个问题?

请帮助我。

我的代码如下,提前谢谢您。

protected void Page_Load(object sender, EventArgs e)
{
  string message = "Hello!";
  System.Text.StringBuilder sb = new System.Text.StringBuilder();
  sb.Append("<script type = 'text/javascript'>");
  sb.Append("window.onload=function(){");
  sb.Append("alert('");
  sb.Append(message);
  sb.Append("')};");
  sb.Append("</script>");
  ClientScript.RegisterClientScriptBlock(this.GetType(), "alert", sb.ToString());
}

最佳答案

在显示警报之前,您需要检查页面是否没有回发:

if (!IsPostBack)
      {
        string message = "Hello!";
        System.Text.StringBuilder sb = new System.Text.StringBuilder();
        sb.Append("<script type = 'text/javascript'>");
        sb.Append("window.onload=function(){");
        sb.Append("alert('");
        sb.Append(message);
        sb.Append("')};");
        sb.Append("</script>");
        ClientScript.RegisterClientScriptBlock(this.GetType(), "alert", sb.ToString());
      }

更新:

您可以创建一个 cookie 来跟踪警报,以便在初始页面加载期间显示后不再显示:

private bool Alerted()
{
    if (Request.Cookies["alerted"] != null)
         return Server.HtmlEncode(Request.Cookies["alerted"].Value) == "true";
    else
    {
       Response.Cookies["alerted"].Value = "true";
       Response.Cookies["alerted"].Expires = DateTime.Now.AddDays(10);
       return false;
    }
}

用法:

if(!Alerted())
{
   // alert script here
}

关于javascript - 仅在第一次访问 C# 网页时显示消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35452366/

相关文章:

javascript - Tablesorter忽略div中的一些数据

c# - WPF 为网格控件保存 "Background"属性的最佳方法

c# - ASP.Net 与标识模型的一对一或零关系

javascript - 为 AJAX 请求重新加载页面源

javascript - 单击内部时如何防止下拉菜单关闭?

javascript - Javascript 执行启动 chrome 而不是 webview

c# - 如何使用循环检查字符串中的特殊字符

c# - 使用 Entity Framework Core、npgsql、PostgreSQL 创建新数据库

javascript - 如何制作一个按钮,使其只能被拖动到一定程度?

c# - 将标签中的数据绑定(bind)到 SQL 数据源