【发布时间】:2018-01-11 06:35:30
【问题描述】:
我只想在每个浏览器会话中显示一次横幅。
<asp:Panel ID="Panel1" runat="server">
<img src="path"/>
</asp:Panel>
我想使用代码隐藏文件中的 cookie 来实现这一点。
我的代码在下面,但横幅一直显示,我如何以投注方式实现这一目标
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//Set Banner Cookie
HttpCookie BannerCookie = new HttpCookie("ShowBanner");
BannerCookie.Value = "YES";
Response.Cookies.Add(bannercookie)
Panel1.Visible = False;
//Do Somthing...
ShowPageDetails();
ShowBanner();
}
else
{
//Do Somthing
Panel1.Visible = False;
ShowPageDetails();
ShowBanner();
}
}
public void ShowBanner()
{
HttpCookie BannerCookie = Request.Cookies["ShowBanner"];
if (BannerCookie != null)
{
Panel1.Visible = True;
BannerCookie.Value = null;
Response.Cookies.Add(BannerCookie);
}
else
{
Panel1.Visible = false;
}
}
更新:我尝试了Ajay 下面提到的解决方案,但它无法正常工作,要么在 cookie 为空时生成错误,要么总是显示横幅。
我不确定如何更改逻辑,以便横幅在每个浏览器会话中只显示一个。我尝试了几种方法,但没有得到它的工作。任何其他可能在代码隐藏中工作的解决方案。
【问题讨论】:
-
你在哪里添加cookie作为响应:Response.Cookies.Add(bannercookie)?
-
对不起错过了那部分...复制时..我现在会更新它。
-
我在页面加载时设置 cookie 的值,当我显示横幅时,我将 cookie 设置为空值....但它没有按预期工作。我在逻辑上做错了什么。
-
检查我的答案中的显示横幅代码。