クラシック ASP、.NET、JavaScript の間で変数値を共有するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/114260

質問

を作成しました IHttpHandler .NET C# では、HTML の一部を従来の ASP ページに返します。

クラシック ASP ページは、 IHttpHandler 基本的な http リクエストを使用して ServerXMLHTTP vbscript または JavaScript の Ajax 呼び出し。

ここで、vbscript にはあるが JavaScript にはない変数を .NET アプリケーションと共有する方法が必要です。

最初の部分は、従来の ASP と .net の間で変数を共有することは、http リクエストに変数を追加するだけなので問題ありません。この変数はJavaScriptでは使用できないため、その場合はこれを行うことができません。

私は、変数を .NET アプリケーションにキャッシュし、キャッシュされたバージョンを JavaScript 呼び出しに使用できるのではないかと考えました。しかし、これが機能するには、.NET で「クライアント」を一意に識別する方法が必要です...

追加してみました System.Web.SessionState.IRequiresSessionState 私の HttpHandler にアクセスして SessionId を使用しましたが、HttpHandler への呼び出しごとに新しい ID が取得されるようであるため、これは機能しませんでした。

私の考えは正しいでしょうか?ここでの選択肢は何ですか?

役に立ちましたか?

解決

ASP ページのサーバー側 VB スクリプトからの変数の値を保存できるページに隠し変数を置くのはどうでしょうか。

次に、JavaScript を使用してこの変数をクエリし、ajax 呼び出しを通じて Asp.Net ハンドラーに送信できます。

他のヒント

値を Cookie に入れると、JavaScript で読み取り、.net アプリへのリクエストで送信するなど、それを使ってあらゆる操作を行うことができます。

最終的に、問題に対する私の解決策は次のとおりでした。

  1. 通常の ws リクエストとともに変数を Web サービスに送信します
  2. 変数値を Web サービスのハッシュ テーブルに保存し、ハッシュキーを非表示の HTML オブジェクトでクライアントに返します (ヘッドを使用しました) <meta> そのための要素)
  3. JavaScript でそのハッシュ値を読み取り、ヘッダー値として http-request に添付します。
  4. Web サービスはそのハッシュキーを認識すると、永続ハッシュ テーブル内のそれぞれの変数値を検索します。

最善の解決策ではないかもしれませんが、私の場合はうまく機能しているようです...

クッキーもおすすめですよ。データベースから値をロードすることもできますが、それはやりすぎです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top