0

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

4

1 回答 1

0

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

于 2013-09-27T19:36:58.780 回答