Domanda

Ho creato un IHttpHandler in .NET C # che restituisce pezzi di html in una classica pagina asp.

La classica pagina asp comunica con ServerXMLHTTP tramite richieste http di base usando System.Web.SessionState.IRequiresSessionState in vbscript o chiamate Ajax in JavaScript.

Ora, ho bisogno di un modo per condividere una variabile che ho in vbscript ma non in javascript con l'applicazione .NET.

Il primo bit, condividere una variabile tra asp classico e .net non è un problema in quanto posso semplicemente aggiungerlo alla richiesta http. Poiché la variabile non è disponibile in JavaScript, tuttavia in questo caso non posso farlo.

Ho avuto l'idea che potrei forse memorizzare nella cache la variabile nell'applicazione .NET e utilizzare la versione cache per le chiamate javascript. Ma perché funzioni, avrei bisogno di un modo per identificare in modo univoco il & Quot; client & Quot; in .NET ...

Ho provato ad aggiungere <=> al mio HttpHandler e usare SessionId ma questo non ha funzionato perché ogni singola chiamata a HttpHandler sembra avere un nuovo ID.

Sto pensando nel modo giusto? Quali sono le mie opzioni qui?

È stato utile?

Soluzione

Che ne dici di avere una variabile nascosta nella pagina in cui puoi memorizzare il valore della variabile dallo script vb sul tuo server delle tue pagine asp.

Quindi puoi usare Javascript per interrogare questa variabile per inviarla al gestore Asp.Net attraverso le tue chiamate ajax.

Altri suggerimenti

Potresti inserire il tuo valore in un cookie, quindi puoi leggere con javascript e fare qualsiasi cosa con esso, incluso inviarlo in una richiesta all'app .net ...

Alla fine la mia soluzione al problema era la seguente:

  1. Mando le variabili al mio servizio web insieme alla normale richiesta ws
  2. Conservo i valori delle variabili in una tabella hash sul servizio web e restituisco l'hashkey al client in un oggetto html nascosto (ho usato un elemento head <meta> per quello)
  3. Nel javascript ho letto quel valore di hash e lo allego alla richiesta http come valore di intestazione.
  4. Quando il servizio web vede quell'hashkey cerca i rispettivi valori delle variabili nella tabella hash persistente.

Potrebbe non essere la soluzione migliore, ma sembra funzionare bene nel mio caso ...

Consiglierei anche un cookie. Potresti anche caricare il valore dal database, ma sarebbe eccessivo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top