我想要一个实用程序功能,有条件地在我的网站中的多个页面上更新我的请求和响应。
使用标准.CS类似乎不允许我访问这些对象。我怎么能(通俗地说)创建一个实用程序函数来检查cookie并在多个页面上更新它?
答案 0 :(得分:1)
使用HttpContext.Current.Request和HttpContext.Current.Response
答案 1 :(得分:1)
你总能通过
获得这些东西System.Web.HttpContext.Current.Request
System.Web.HttpContext.Current.Response
HttpContext Class和Current Property
封装有关单个HTTP请求的所有特定于HTTP的信息。
要在整个网站中管理一些cookie值,我建议您创建一个所有Pages继承的BasePage类并在那里进行检查:
public class BasePage : System.Web.UI.Page
{
protected override void OnPreRender(EventArgs e)
{
UpdateCookie();
base.OnPreRender(e);
}
}
在您的MasterPage中执行相同操作:
public class SiteMasterPage : MasterPage
{
protected override void OnPreRender(EventArgs e)
{
UpdateCookie();
base.OnPreRender(e);
}
}
public static void UpdateCookie()
{
HttpContext context = System.Web.HttpContext.Current;
HttpCookie cookie = context.Response.Cookies.Get("Update")
?? new HttpCookie("Update");
int value = 0;
int.TryParse(cookie.Value, out value);
value++;
cookie.Expires = DateTime.Now.AddDays(30);
cookie.Value = value.ToString();
context.Response.Cookies.Set(cookie);
}
答案 2 :(得分:0)
使用完全限定的命名空间:
System.Web.HttpContext.Current.Request
System.Web.HttpContext.Current.Response
- 或 -
using System.Web.HttpContext.Current;
然后您应该能够在整个课程中访问请求/响应。
答案 3 :(得分:0)
有几种方法可以做到这一点。其他人已经提到用System.Web.HttpContext.Current
这样做,但我认为(猜测我认为你的意图是这样的)在主页上加载的方法上执行此操作是一个更好的主意。