C# 使用asp.net和Cookie在每个浏览器会话中显示一次横幅
我只想在每个浏览器会话中显示一次横幅C# 使用asp.net和Cookie在每个浏览器会话中显示一次横幅,c#,asp.net,webforms,C#,Asp.net,Webforms,我只想在每个浏览器会话中显示一次横幅 <asp:Panel ID="Panel1" runat="server"> <img src="path"/> </asp:Panel> 更新:我尝试了Ajay在下面提到的解决方案,但该解决方案无法正常工作,或者在cookie为null时生成错误,或者始终显示横幅 我不确定如何更改逻辑,使横幅在每个浏览器会话中仅显示一个。我尝试了几种方法,但都没有成功。任何其他可能从代码隐藏中起作用的解决方案。您需要更正ShowB
<asp:Panel ID="Panel1" runat="server">
<img src="path"/>
</asp:Panel>
更新:我尝试了Ajay在下面提到的解决方案,但该解决方案无法正常工作,或者在cookie为null时生成错误,或者始终显示横幅
我不确定如何更改逻辑,使横幅在每个浏览器会话中仅显示一个。我尝试了几种方法,但都没有成功。任何其他可能从代码隐藏中起作用的解决方案。您需要更正ShowBanner逻辑,当cookie不存在时,请显示其他内容,不要执行相反的操作,也不要在页面加载时每次都添加cookie 我只想在每个浏览器会话中显示一次横幅
<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;
}
}
public void ShowBanner()
{
HttpCookie BannerCookie = Request.Cookies["ShowBanner"];
if (BannerCookie != null)
{
Panel1.Visible = false;
}
else{
Panel1.Visible = true;
}
}
页面加载时仅在不存在cookie时添加cookie
HttpCookie BannerCookie = Request.Cookies["ShowBanner"];
if (BannerCookie == null)
{
BannerCookie = new HttpCookie("ShowBanner");
BannerCookie.Value = "YES";
Response.Cookies.Add(bannercookie)
}
创建会话变量:
if(Session["whatever"] == null)
{
// show the post
}
else
{
Session["whatever"] = 0;
}
您在哪里添加cookie作为响应:response.Cookies.Addbannercookie?很抱歉错过了这一部分。。。复制时..我将立即更新它。我正在页面加载时设置cookie的值,当我显示横幅时,我将cookie重置为空值。。。。但我不能按要求工作。逻辑上我做错了什么。请检查我答案中的showbanner代码。这给了我一个错误,无法在此范围内声明局部变量。。。。。。对于这行代码,HttpCookie BannerCookie=new HttpCookieShowBanner;在页面加载部分代码编辑代码时,无需在ShowBanner中再次声明HttpCookie,但错误是您提到的代码的第二部分。。。不是showbanner部分错误描述无法在此范围内声明名为“BannerCookie”的局部变量,因为它将赋予“BannerCookie”不同的含义,后者已在“父级或当前”范围内用于表示其他内容