Since PageMethods are static if I need the access to the Session how should I go about it ?.
One straightforward way may be to add a field in my (Page) class like this
public partialclass MyPage : Page {private static MyPage _p;protected void Page_Load(object sender, EventArgs e){ _p =this; } [ScriptMethod][WebMethod]public static void MyPageMethod(string contextKey){int a = (int)_p.Request.Session["myintval"]; } }
Do you guys thinking this is the only and best way to do it ?.
Please suggest.
Regards & thanks
Kapil
you could do it in more simple way:
instead of
int a = (int)_p.Request.Session["myintval"];
int a = (int) HttpContext.Current.Session["myintval"];
The static property Current of HttpContext is accessible from everywhere.
Cheers,
Yani
An even better solution would be to implement a facade pattern for your session (more infohere).
Regardless of anything else you do in terms of code style and whatnot, you have to change your WebMethodAttribute to
[WebMethod(EnableSession=true)]
silly me, huh. I knew I was doing something wrong.
Thanks for the answer Yani
Regards
Kapil
No comments:
Post a Comment