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

时间:2013-08-31 15:27:30

标签: asp.net vb.net global-variables global global-asax

我正在尝试从Global.asax文件中自动设置每个页面加载的变量。

我以为我可以从Application_BeginRequest执行此操作,但似乎无法正常工作。

变量是从数据库设置的,本质上我正在快速调用DB以检查是否需要执行其他操作。我现在不能详细说明,但不能使用缓存。

所以,我尝试了许多想法,但没有得到任何想法,这里有两个最合乎逻辑的想法:

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)确实有效,但该值在页面加载时是静态的,这意味着如果我刷新或移动到另一个页面,即使我知道它应该已经更改,该值仍然保持不变。

1 个答案:

答案 0 :(得分:0)

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