asp.net中的某些会话变量仅在移动设备上丢失

时间:2018-06-20 19:12:29

标签: asp.net google-chrome mobile session-variables device

我有一个存储一些会话变量的Page1.aspx。当Page1.aspx重定向到Page2.aspx时,某些(不是全部)会话变量“消失”并变为null。但是,这仅发生在移动设备上。当我在chrome中运行该网站时,效果很好。

起初我会将此归咎于移动设备,但会话存储在服务器上,而不是设备上。

在Page1.aspx上,有一个基于BCMember类的名为BCMember的属性。 看起来像这样:

Public Property BCMember As BCMember
    Get
        BCMember = Session("BCMember")
    End Get
    Set
        Session("BCMember") = Value
    End Set
End Property  

在我的代码中,我将BCMember.FirstName设置为“ Joe”。这会将值存储在会话变量中。

在另一条语句中,我将另一个会话变量设置如下:

Session("AmountToPay") = 150

在Page2.aspx上,我设置了与Page1.aspx上相同的BCMember属性

Public Property BCMember As BCMember
    Get
        BCMember = Session("BCMember")
    End Get
    Set
        Session("BCMember") = Value
    End Set
End Property  

重定向到Page2之后,在Page_Load事件中,我输入了以下三个语句:

If Session("AmountToPay") = Nothing Then
    Response.Write("AmountToPay is nothing<br />")
End If
Response.Write(BCMember.FirstName & "<br />")
Response.Write(Session("AmountToPay") & "<br />"))

在我的PC上将页面加载到Chrome中后,结果如下:


150

但是,当页面在我的Android手机上的Chrome上加载时,结果如下:

AmountToPay什么都不是

0

似乎保留了Session(“ BCMember”),并使用session变量正确设置了BCMember属性。

为什么将Session(“ AmountToPay”)设置为“ Nothing”?

快速更新...我创建了一个测试类Test,其中一个字段AmountToPay为Double。当我以与BCMember相同的方式处理该属性时,它就很好地出现在Page2.aspx中。似乎如果使用Class并将session变量设置为与该class相等,则它将被保留。我想我只会创建一个类,该类可用于保存所有单个会话变量,并将其以这种方式传递给第二页。我没有必要那样做没有道理,但我想它是否可行...

0 个答案:

没有答案