Je voulais accéder à une variable de session en javascript dans l'application asp.net mvc. J'ai trouvé un moyen de le faire dans le moteur de vue aspx mais pas dans le rasoir.
S'il vous plaît dites-moi un moyen d'accéder aux variables de session
Vous pouvez le faire de cette façon pour une variable String
:
<script type="text/javascript">
var someSessionVariable = '@Session["SomeSessionVariable"]';
</script>
Ou comme ceci si c'est numérique:
<script type="text/javascript">
var someSessionVariable = @Session["SomeSessionVariable"];
</script>
Ce n’est vraiment pas une approche très propre, et nécessite du JavaScript intégré plutôt que l’utilisation de fichiers de script. Veillez à ne pas vous emporter avec cela.
Personnellement, j'aime le modèle d'attribut de données.
Dans votre code Razor:
<div id="myDiv" data-value="@Request.RequestContext.HttpContext.Session["someKey"]"></div>
Dans votre javascript:
var value = $("#myDiv").data('value');
Pour les chercheurs Google,
De plus, si vous voulez accéder à la variable de session dans un fichier .js
externe, vous pouvez simplement le faire
------ SOME HTML PAGE ------
//Scripts below Html page
<script>
//Variable you want to access
var mySessionVariable = '@Session["mySessionVariable"]';
</script>
// Load External Javascript file
<script src="~/scripts/MyScripts/NewFile.js"></script>
À l'intérieurNewFile.js
$(document).ready(function () {
alert(mySessionVariable);
});
Dans mon asp.net je ne reçois pas le résultat par
<script type="text/javascript">
var someSessionVariable = '@Session["SomeSessionVariable"]';
</script>
Mais je reçois la réponse par le code ci-dessous,
<script type="text/javascript">
var yourVariable = '<%= Session["SessionKey"] %>';
</script>