2011-03-02 62 views
1

我有我使用在每一页下面:使用页面方法时的页面事件?

public partial class Pages_MyPage : System.Web.UI.Page 
{ 
    ViewUserPreferencesModel TheUserPreferences; 

    Protected void Page_Load(object sender, EventArgs e) 
     { 
     TheUserPreferences = (ViewUserPreferencesModel)Session["SessionUserPreferences"]; 

然后我用一个页面方法是这样的:

[WebMethod] 
public static string GetAppointements(string DateInput) 
{ 
    ViewUserPreferencesModel TheUserPreferences = (ViewUserPreferencesModel)HttpContext.Current.Session["SessionUserPreferences"]; 

我的问题是:我是否需要包括当我运行页面方法时加载用户首选项的语句,或者页面方法被调用时触发的Page_Load事件中的语句,如果它们是,变量是否会被填充?

谢谢。

回答

1

不,页面方法不遵循ASP.NET页面生命周期。但是,即使他们这样做了,您的TheUserPreferences变量也不能在静态上下文中访问。

+0

好的,谢谢。我想这意味着我必须保持现状。有没有更好的方法可以建议? – frenchie 2011-03-02 23:49:12

+0

@frenchie,取决于你的页面方法。通常,您使用页面方法来执行某种异步调用来返回数据或执行更新。所以目前还不清楚为什么你的页面方法需要用户首选项。 – Vadim 2011-03-03 00:36:04

+0

因为在UserPreferences中,我存储了用户想要显示时间和日期的方式。 page方法返回一个json对象,该对象根据用户的偏好进行格式化。 – frenchie 2011-03-03 00:40:52