0

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

经典的 asp 页面IHttpHandler通过使用 vbscript 中的基本 http 请求ServerXMLHTTP或 JavaScript 中的 Ajax 调用与通信。

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

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

我的想法是,我可以将变量缓存在 .NET 应用程序中,并将缓存的版本用于 javascript 调用。但要使其正常工作,我需要一种方法来唯一标识 .NET 中的“客户端”......

我尝试添加System.Web.SessionState.IRequiresSessionState到我的 HttpHandler 并使用 SessionId 但这不起作用,因为对 HttpHandler 的每次调用似乎都会获得一个新 ID。

我的想法正确吗?我在这里有什么选择?

4

4 回答 4

3

您可以将您的值放入 cookie 中,然后您可以使用 javascript 读取并用它做任何事情,包括将其发送到 .net 应用程序的请求中......

于 2008-09-24T03:54:23.593 回答
0

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

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

于 2008-09-22T11:16:52.160 回答
0

最后我对这个问题的解决方案如下:

  1. 我将变量与正常的 ws 请求一起发送到我的网络服务
  2. 我将变量值存储在 web 服务上的哈希表中,并在隐藏的 html 对象中将哈希键返回给客户端(为此我使用了 head<meta>元素)
  3. 在 javascript 中,我读取了该哈希值并将其作为标头值附加到 http-request。
  4. 当 Web 服务看到该哈希键时,他会在持久哈希表中查找相应的变量值。

可能不是最好的解决方案,但在我的情况下似乎效果很好......

于 2008-10-01T07:43:00.277 回答
0

我也推荐一个饼干。您也可以从数据库中加载值,但这太过分了。

于 2011-01-30T03:47:01.090 回答