开发者

How do I share a function that uses "Response" or "Request" in ASP.NET?

I'd like to have a utility function that conditionally updates my request and response across several pages in my site.

Using a standard .CS class doesn't seem to give me access to the开发者_StackOverflow社区se objects. How can I (generall speaking) create a utility function that checks for a cookie and update it across multiple pages?


You can always get at these things via

System.Web.HttpContext.Current.Request

System.Web.HttpContext.Current.Response

HttpContext Class and the Current Property

Encapsulates all HTTP-specific information about an individual HTTP request.


And to manage some cookie value throughout your site I would suggest either create a BasePage class that all of your Pages inherited from and do the checks there:

public class BasePage : System.Web.UI.Page
{
    protected override void OnPreRender(EventArgs e)
    {
        UpdateCookie();
        base.OnPreRender(e);
    }
}

do the same in your 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);
}


use HttpContext.Current.Request and HttpContext.Current.Response


Use the fully qualified namespace:

System.Web.HttpContext.Current.Request

System.Web.HttpContext.Current.Response

-- or --

using System.Web.HttpContext.Current;

Then you should be able to access Request/Response throughout your class.


There are several ways to do this. Other have mentioned doing this with System.Web.HttpContext.Current, but I'd think (guessing from what I think your intent is) that doing this on a method that runs on load on your master pages is a better idea.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜