我是 asp.net 的新手,我正在尝试解决一个问题。
我创建了一个引用 vb.net 类的简单 aspx 页面(asp 网站)。我正在使用会话上下文对象处理一个类实例(不知道是否有更好的方法)。该类有一个设置字符串值的 sub 和一个返回它的函数。
我编译并运行网站项目,然后从一个 aspx 页面设置值“1”,从另一个页面设置值“2”(我通过从第一页复制粘贴 URL 打开第二个选项卡或浏览器)然后检索值,两个页面都将显示“2”。
vb.net 表单应用程序 (.exe) 中的同一个类在 exe 实例运行时工作得很好,第一个返回值“1”,第二个返回值“2”。这就是我希望它在我的网站项目中工作的方式,不同的页面不同的 dll 实例。
Class:
Public Class Class1
Private sExten As String
Public Sub setExten(value As String)
sExten = value
End Sub
Public Function getExten() As String
Return sExten
End Function
End Class
aspx:
Partial Class _Default
Inherits System.Web.UI.Page
'trying to ensure one instance is running
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
Session.Add("ClassLibrary1", New ClassLibrary1.Class1)
End If
End Sub
'txtSetValue.text contains value "1" or "2"
Protected Sub btnSet_Click(sender As Object, e As EventArgs) Handles btnSet.Click
CType(Session.Item("ClassLibrary1"), ClassLibrary1.Class1).setExten(txtSetValue.text)
End Sub
'the txtShowValue shows "1" in the first and "2" in the second page
Protected Sub BtnGet_Click(sender As Object, e As EventArgs) Handles BtnGet.Click
txtShowValue.Text = CType(Session.Item("ClassLibrary1"), ClassLibrary1.Class1).getExten()
End Sub
End Class