我在.NET C#中创建了一个IHttpHandler,它将html片段返回到经典的asp页面。

经典的asp页面通过使用vbscript中的ServerXMLHTTP或JavaScript中的Ajax调用通过基本的http请求与System.Web.SessionState.IRequiresSessionState进行通信。

现在,我需要一种方法来共享我在vbscript中的变量,但不能在.NET应用程序的javascript中共享。

第一位,在经典asp和.net之间共享变量不是问题,因为我可以将它添加到http请求中。因为该变量在javascript中不可用,但在这种情况下我不能这样做。

我有一个想法,我可以将变量缓存在.NET应用程序中,并使用缓存版本进行javascript调用。但为了实现这一点,我需要一种方法来唯一地识别<!> quot; client <!> quot;在.NET ...

我尝试将<=>添加到我的HttpHandler并使用SessionId,但这不起作用,因为每次调用HttpHandler似乎都会获得一个新的ID。

我是否正确思考?我有什么选择?

有帮助吗?

解决方案

如何在页面上设置一个隐藏变量,您可以在其中存储asp页面的服务器端vb脚本中的变量值。

然后,您可以使用Javascript查询此变量,以通过您的ajax调用发送到Asp.Net处理程序。

其他提示

你可以将你的价值放在一个cookie中,然后你可以用javascript阅读并对它做任何事情,包括将它发送到.net应用程序的请求......

最后,我解决问题的方法如下:

  1. 我将变量与正常的ws请求一起发送到我的web服务
  2. 我将变量值存储在webservice上的哈希表中,并将哈希键返回给隐藏的html对象中的客户端(我使用了头<meta>元素)
  3. 在javascript中,我读取了该哈希值,并将其作为标头值附加到http-request。
  4. 当webservice看到该hashkey时,他在持久性哈希表中查找相应的变量值。
  5. 可能不是最好的解决方案但似乎在我的情况下运作良好......

我也推荐一个cookie。您也可以从数据库加载该值,但这样做有点过分。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top