.net 我可以使用什么变量来代替共享?
我有以下变量,当我使用同一web表单的多个实例时会产生问题。您能告诉我如何使用共享以外的变量来实现此目的吗.net 我可以使用什么变量来代替共享?,.net,asp.net,variables,shared,.net,Asp.net,Variables,Shared,我有以下变量,当我使用同一web表单的多个实例时会产生问题。您能告诉我如何使用共享以外的变量来实现此目的吗 Public strRoleType As String = String.Empty Protected Shared isAreaSelected As Integer = 0 Protected Shared isStoreSelected As Integer = 0 Protected Shared isHeadOfficeSelected As Integer = 0 Prot
Public strRoleType As String = String.Empty
Protected Shared isAreaSelected As Integer = 0
Protected Shared isStoreSelected As Integer = 0
Protected Shared isHeadOfficeSelected As Integer = 0
Protected Shared isRegionSelected As Integer = 0
只需删除共享的,一切都会好起来。这是一项大量工作,但它会创建表单级存储 对于每个共享变量,将其转换为WebForm上的属性。然后将这些值存储在ViewState中
'default to 0 if blank, else convert to int
Public Property IsAreaSelected() As Integer
Get
Return If(ViewState("IsAreaSelected") Is Nothing, 0, Cint(ViewState("IsAreaSelected")))
End Get
Set(ByVal value As Integer)
ViewState("IsAreaSelected") = value
End Set
End Property
这样,值将保留在页面中
请注意,我在飞行中编写了此代码,而不是在VS中,因此您可能需要对其进行调整。对不起,我不理解您的问题。你能更好地解释一下问题是什么和/或你想实现什么吗?你不应该像这样在ASP.NET中使用共享变量(如果是基于每个用户的),因为它会影响整个应用程序。你到底想做什么?我的web表单中存在会话冲突问题,因此我将所有会话变量更改为共享变量。这仍然是一个问题。。您的建议是什么?在asp.net中,没有多少情况下您希望共享任何内容(或在c#中是静态的)。您的默认设置是不将其共享,并在共享任何内容之前三思而后行。请参阅链接。。这正是我面临的问题:不。。。当我删除共享时。表单无法按预期工作。请参阅链接。。这正是我所面临的问题:我读了你的帖子,我认为你对ASP.NET在多人同时浏览网站时的工作方式感到非常困惑。我不明白为什么您要使用页面变量和会话变量的组合,而且因为您的应用程序只包含一个.aspx,所以页面变量非常合适(否则请使用会话变量)。也就是说,使用一个或另一个,应用程序中不需要“shared”。但是我从变量声明中删除了共享关键字。当我在第一页中选择任何值时,web表单根本没有绕过第三页。那么这有什么问题?@SmartestVEGA,我认为您忽略了web是无状态的这一事实。