Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 我可以使用什么变量来代替共享?_.net_Asp.net_Variables_Shared - Fatal编程技术网

.net 我可以使用什么变量来代替共享?

.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

我有以下变量,当我使用同一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
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是无状态的这一事实。