2010-12-22 81 views
3

我想聲明一個變量,如下面在我的網站上的幾個頁面中使用。我假設,而不是每頁一次宣佈我可以做到全球?我已經在類(app_code文件夾)和global.asax頁面中嘗試過它,但我的代碼似乎無法找到它。雖然我可能會錯過所有錯誤?代碼如下...asp.net網站中的全局變量

Dim myUser As MembershipUser = Membership.GetUser() 

所以基本上,因爲它站立我的網頁找不到'myUser'變量。任何幫助非常感謝!謝謝

回答

2

創建一個類/結構和添加靜態

namespace MyApp 
{ 
    public class Variables 
    { 
     public static User MembershipUser 
     { 
      get { return Membership.GetUser(); } 
     } 
    } 
} 

然後,您可以使用訪問值/屬性:

MyApp.Variables.MembershipUser

如果這的getUser()返回用戶對象與屬性「用戶名」您可以:

Hello <%=MyApp.Variables.MembershipUser.Username%> 

這裏是一個VB.NET版本錫永:

Namespace MyApp 
    Public Class Variables 
     Public Shared ReadOnly Property MembershipUser() As User 
      Get 
       Return Membership.GetUser() 
      End Get 
     End Property 
    End Class 
End Namespace 
+0

好,我把在類文件如下:把它稱爲使用Variables.myUser – 2010-12-22 11:36:02

3

使用SessionApplication對象,如果你需要這樣的「全球」。

如果需要,每個用戶使用Session,如果是整個應用程序,則使用Application

+0

如果它是當前用戶,那麼我想它是一個Session變量。如果我將該行放入我的global.asax文件中,則不起作用。我應該把它放在哪裏? – 2010-12-22 11:24:13

+0

@adrian g - 什麼行?你有沒有改變它使用會話?我建議你閱讀鏈接的文檔,看看應該如何使用`Session`和`Application`。 – Oded 2010-12-22 11:25:31

0

這可能走在一個頁面基類或擴展方法來System.Web.UI.Page

public static MembershipUser GetMembershipUser(this System.Web.UI.Page page) 
{ 
    return Membership.GetUser(); 
} 
0

@ stian.net我有以下 - 工程完全按照我想讓它。你會說這是做到這一點的正確方法嗎?

Public Class Variables 
Public Shared ReadOnly Property myUser As MembershipUser 
    Get 
     Return Membership.GetUser() 
    End Get 
End Property 
End Class