Javascript 如何使用Knockout从vm设置会话变量?

Javascript 如何使用Knockout从vm设置会话变量?,javascript,asp.net,vb.net,session,knockout.js,Javascript,Asp.net,Vb.net,Session,Knockout.js,关于如何将会话变量放入knockout,我已经看到了很多问题,但没有一个解释如何从knockout vm中设置会话变量。我的设置: -ASPX页面,其中我获取一个会话[“GridSize”]变量,并将其作为名为currentGridSize的全局变量返回 -VM,我从中获取全局变量,并设置这个.gridSize=globals.gridSize -更改此参数的下拉列表。gridSize 我需要的是: -设置会话[“GridSize”]=this.GridSize的某种方法,无论是在会话更改时还是

关于如何将会话变量放入knockout,我已经看到了很多问题,但没有一个解释如何从knockout vm中设置会话变量。我的设置:

-ASPX页面,其中我获取一个会话[“GridSize”]变量,并将其作为名为currentGridSize的全局变量返回

-VM,我从中获取全局变量,并设置这个.gridSize=globals.gridSize

-更改此参数的下拉列表。gridSize

我需要的是:

-设置会话[“GridSize”]=this.GridSize的某种方法,无论是在会话更改时还是在页面离开时

我试过:

-在my.aspx.vb上使用webmethod函数并调用该函数(不能从共享函数调用会话变量,必须共享webmethods)


-从vm调用,您可以通过对页面方法执行以下操作,在ASP.NET AJAX页面方法中访问会话:

<WebMethod(EnableSession := True)> _
Public Shared Sub StoreSessionValue(sessionValue As String)
    ' Set a value into Session
    HttpContext.Current.Session("TheSessionValue") = sessionValue
End Sub

<WebMethod(EnableSession := True)> _
Public Shared Function GetSessionValue(sessionValueName As String) As String
    ' Get a value from Session
    Return HttpContext.Current.Session(sessionValueName)
End Sub

通过对页面方法执行以下操作,您可以在ASP.NET AJAX页面方法中访问会话:

<WebMethod(EnableSession := True)> _
Public Shared Sub StoreSessionValue(sessionValue As String)
    ' Set a value into Session
    HttpContext.Current.Session("TheSessionValue") = sessionValue
End Sub

<WebMethod(EnableSession := True)> _
Public Shared Function GetSessionValue(sessionValueName As String) As String
    ' Get a value from Session
    Return HttpContext.Current.Session(sessionValueName)
End Sub

酷。我如何从我的虚拟机或通过数据绑定从我的aspx页面调用它?(该变量存储在knockout中,因此我不能只分配函数运行onChange。)我更新了答案,以展示如何使用jQuery调用页面方法。没问题,很高兴您接受了答案,也可以随意投票表决答案。:-)酷。我如何从我的虚拟机或通过数据绑定从我的aspx页面调用它?(该变量存储在knockout中,因此我不能只分配函数运行onChange。)我更新了答案,以展示如何使用jQuery调用页面方法。没问题,很高兴您接受了答案,也可以随意投票表决答案。:-)