97 votes

Comment accéder aux variables de session et les définir en javascript ?

Dans le code-behind, j'ai mis Session avec quelques données.

Session["usedData"] = "sample data";

La question est la suivante : comment puis-je obtenir la valeur de la session (dans mon exemple, "données de l'échantillon") en javascript et la définir ? Session["usedData"] avec une nouvelle valeur ?

73voto

SHEKHAR SHETE Points 1412

Accéder et assigner la variable de session en utilisant Javascript :

Assignation de la variable de session ASP.NET à l'aide de Javascript :

 <script type="text/javascript">
function SetUserName()
{
    var userName = "Shekhar Shete";
    '<%Session["UserName"] = "' + userName + '"; %>';
     alert('<%=Session["UserName"] %>');
}
</script>

Accès à la variable de session ASP.NET à l'aide de Javascript :

<script type="text/javascript">
    function GetUserName()
    {

        var username = '<%= Session["UserName"] %>';
        alert(username );
    }
</script>

30voto

Darren Davies Points 29038

Vous ne pouvez pas accéder Session directement en JavaScript.

Vous pouvez créer un champ caché et le passer à votre page, puis utiliser JavaScript pour récupérer l'objet via document.getElementById

16voto

Rajeev Kumar Points 1963

Essayez ceci

var sessionValue = '<%=Session["usedData"]%>'

15voto

Ganesh Points 426

Javascript ne peut pas définir directement les valeurs de la session. Pour définir les valeurs de session à partir de javascript, je fais un appel ajax comme suit.

Vérifier en ligne

Au niveau du fichier ASPx ou html,

 <script type="text/javascript">
 $(function(){
   //Getting values from session and saving in javascript variable.
   // But this will be executed only at document.ready.
   var firstName = '<%= Session["FirstName"] ?? "" %>';
   var lastName = '<%= Session["LastName"] ?? "" %>';

   $("#FirstName").val(firstName);
   $("#LastName").val(lastName);

   $('Button').click(function(){
     //Posting values to save in session
     $.post(document.URL+'?mode=ajax', 
     {'FirstName':$("#FirstName").val(),
     'LastName':$("#LastName").val()
     } );
   });

 });

Du côté du serveur,

protected void Page_Load(object sender, EventArgs e)
 {
      if(Request.QueryString["mode"] != null && Request.QueryString["mode"] == "ajax")
      {
        //Saving the variables in session. Variables are posted by ajax.
        Session["FirstName"] = Request.Form["FirstName"] ?? "";
        Session["LastName"] = Request.Form["LastName"] ?? "";
      }
 }

Pour obtenir les valeurs de session, comme indiqué par Shekhar et Rajeev

var firstName = '<%= Session["FirstName"] ?? "" %>';

J'espère que cela vous aidera.

12voto

Quentin Points 325526

Si vous voulez dire "JavaScript côté client", alors vous ne pouvez pas, du moins pas directement.

Les données de session sont stockées sur le serveur, de sorte que le code côté client ne peut pas les voir sans communiquer avec le serveur.

Pour y accéder, vous devez faire une demande HTTP et demander à un programme côté serveur de modifier / lire et renvoyer les données.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X