我正在尝试从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)确实有效,但该值在页面加载时是静态的,这意味着如果我刷新或移动到另一个页面,即使我知道它应该已经更改,该值仍然保持不变。
答案 0 :(得分:0)
您可以使用继承。创建一个类(BasePage),每个页面都可以继承此基页。在基页的Page_Load(或Pre_Init)中,进行数据库检查。这将允许您检查某些页面,但不是全部(如果有必要)。