2010-11-30 5 views
0

J'utilise asp.net (webforms flavor) pour le codage du serveur. Disons que j'ai stocké une variable appelée "test" dans l'objet Session.Capture des variables de session dans le code Jquery

Existe-t-il un moyen de récupérer son contenu dans le fichier javascript js (j'utilise Jquery). Actuellement, j'utilise la solution de contournement suivante: dans mon fichier aspx.cs, je remplis un champ masqué, puis dans Jquery, j'attrape le contenu de ce champ.

Quelle est la bonne façon de faire cela?

J'ai essayé d'exposer la session par une méthode web et en utilisant la fonction $ ajax pour obtenir la valeur du côté Jquery, mais je reçois une erreur de sécurité - "permission denied" - aucune explication supplémentaire offerte.

Ma solution de contournement fonctionne bien, mais pour moi, il semble plutôt maladroit. Quels sont les moyens courants pour obtenir un accès à la session dans Jquery?

Répondre

0

Étant donné que la session réside sur le serveur, JQuery (sur le client) ne peut vraiment pas y accéder directement. Si vous souhaitez que la page soit consciente de la valeur d'une variable de session, la meilleure chose à faire est généralement d'inclure la valeur sur les parties générées dynamiquement de la page, comme vous le faites avec le champ caché. Vous pouvez également produire javascript dans votre fichier .aspx, comme ceci:

<script type="text/javascript"> 
    currentSessionName = '<%=Session["CurrentPersonName"].Replace("'", "\\'")%>'; 
</script> 
+0

merci, êtes-vous sûr de la syntaxe? JS se plaint ... – sarsnake

+0

Vous devrez probablement déclarer currentSessionName comme une variable quelque part, comme dans votre fichier statique .js. – StriplingWarrior

+0

ce n'est pas ça. Ceci - '<% = Session ["CurrentPersonName"]. Replace ("'", "\\ '")%>' est le problème. Se plaint qu'il y a une erreur de syntaxe. – sarsnake

1

Vous pourriez use jQuery to call a web method. Assurez-vous d'orner votre méthode avec le [WebMethod(true)]attribute overload pour rendre l'état de session disponible.

+0

peut-être que c'est là que je me suis trompé. Je vais essayer, merci – sarsnake

+0

Cela a-t-il fonctionné pour vous? –

+0

non, rien ne fonctionne. Si frustrant. J'ai mis en place le EnablePageMethods = "true" et la valeur retournée par le WebMethod est encore indéfinie. Mon autre choix est de simplement le cracher dans le champ caché et le ramasser à partir de là, ce qui semble plutôt barbare. – sarsnake

Questions connexes