2013-08-31 46 views
0

我试图在Global.asax文件中自动加载每个页面上设置一个变量。在页面上更新全局变量在Global.asax中加载VB.net

我以为我可以做到这一点从Application_BeginRequest,但它似乎并没有工作。

该变量是从数据库中设置的,本质上我正在对数据库进行非常快速的调用以检查是否需要执行其他操作。我现在无法进入细节,但无法为此使用缓存。

所以,我已经尝试了很多想法,但没有在任何地方得到,这里有两个最符合逻辑的脑海里:

1:Application_BeginRequest

Public Class Global_asax 
    Inherits System.Web.HttpApplication 
    Shared Property MyVar as String 
    Sub Application_BeginRequest(ByVal sender As Object, ByVal e As EventArgs) 
     MyVar = CallToDatabase() 
    End Sub 
End Class 

2设置变量:在设置变量在Global.asax文件的开头:

Public Class Global_asax 
    Inherits System.Web.HttpApplication 
    Shared Property MyVar as String = CallToDatabase()   
End Class 

这两个,这些都是问题:

版本(1)似乎根本没有设置变量,当尝试访问时,我得到一个空值。

版本(2)确实有效,但是页面加载时的值是静态的,这意味着如果我刷新或移动到另一个页面,即使知道它应该更改,值仍保持不变。

回答

0

您可以使用继承。创建一个类(BasePage),每个页面都可以继承这个基本页面。在基页的Page_Load(或Pre_Init)中,放入数据库检查。这将允许你检查一些页面,但不是全部(如果这是必要的话)。