Asp.net 在Global.asax中加载VB.net页面上更新全局变量

Asp.net 在Global.asax中加载VB.net页面上更新全局变量,asp.net,vb.net,global-variables,global,global-asax,Asp.net,Vb.net,Global Variables,Global,Global Asax,我试图在从Global.asax文件自动加载的每个页面上设置一个变量 我以为我可以从应用程序\u BeginRequest中执行此操作,但它似乎不起作用 变量是从数据库中设置的,本质上我正在对数据库进行一个非常快速的调用,以检查是否需要执行其他操作。我现在无法深入了解细节,但无法使用缓存进行此操作 因此,我尝试了很多想法,但都没有成功,以下是我认为最符合逻辑的两个: 1:在应用程序中设置变量\u BeginRequest Public Class Global_asax Inherits

我试图在从Global.asax文件自动加载的每个页面上设置一个变量

我以为我可以从
应用程序\u BeginRequest
中执行此操作,但它似乎不起作用

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

因此,我尝试了很多想法,但都没有成功,以下是我认为最符合逻辑的两个:

1:在
应用程序中设置变量\u 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)确实可以工作,但该值在页面加载时是静态的,这意味着如果我刷新或移动到另一个页面,即使我知道它应该已更改,该值仍保持不变。

您可以使用继承。创建一个类(BasePage),每个页面都可以继承这个基页。在基页的页面加载(或Pre_Init)中,进行数据库检查。这将允许您检查某些页面,但不是所有页面(如果有必要)