繁体   English   中英

仅在首次访问C#中的网页时显示消息

[英]Show message only on first access to the web page in c#

通过此代码,我使用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来跟踪警报,以便在初始页面加载期间显示后不会显示该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
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM