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



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

我原以为我可以从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)确实有效,但该值在页面加载过程中是静态的,这意味着如果我刷新或移动到另一个页面,即使我知道它应该更改,该值也会保持不变。

您可以使用继承。创建一个类(BasePage),每个页面都可以继承此基础页面。在基本页面的Page_Load(或Pre_Init)中,检查DB。这将允许您查看某些页面,但不是全部页面(如果有必要的话)。

最新更新