2011-03-02 12 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