如何在经典的ASP,.NET和javascript之间共享变量值?
时间:2020-03-06 14:32:05 来源:igfitidea点击:
我在.NET C中创建了一个IHttpHandler,它将html片段返回到经典的ASP页面。
经典的ASP页面使用vbscript中的ServerXMLHTTP或者JavaScript中的Ajax调用,通过基本的HTTP请求与IHttpHandler进行通信。
现在,我需要一种方法来与.NET应用程序共享我在vbscript中但在javascript中没有的变量。
首先,在经典asp和.net之间共享变量不是问题,因为我可以将其添加到http请求中。因为该变量在javascript中不可用,但是在这种情况下我无法做到这一点。
我的想法是,我可以将变量缓存在.NET应用程序中,并将缓存的版本用于javascript调用。但是,为了使它起作用,我需要一种方法来唯一地标识.NET中的"客户端"。
我试图将System.Web.SessionState.IRequiresSessionState
添加到我的HttpHandler中并使用SessionId,但这没有用,因为对HttpHandler的每次调用似乎都获得了一个新的ID。
我在想正确的方法吗?我在这里有什么选择?
解决方案
如何在页面上具有隐藏变量,我们可以在其中存储来自ASP页面的服务器端vb脚本的变量值。
然后,我们可以使用Javascript查询此变量,以通过ajax调用发送给Asp.Net处理程序。
我们可以将值放在Cookie中,然后可以使用javascript进行阅读并对其进行任何处理,包括将其发送到.net应用程序的请求中...
最后,我对问题的解决方案如下:
- 我将变量与常规的ws请求一起发送到我的Web服务
- 我将变量值存储在Web服务上的哈希表中,然后将哈希键返回给隐藏的html对象中的客户端(为此,我使用了head
<meta>
元素) - 在javascript中,我读取了该哈希值,并将其作为标头值添加到http-request。
- 当Web服务看到该哈希键时,他将在持久哈希表中查找相应的变量值。
可能不是最好的解决方案,但就我而言似乎效果很好...