webentwicklung-frage-antwort-db.com.de

Auf Session-Variablen in JavaScript zugreifen

Ich wollte auf eine Sitzungsvariable in Javascript in ASP.vv Anwendung zugreifen. Ich habe einen Weg gefunden, dies in der aspx view engine zu tun, aber nicht im Rasiermesser.

Bitte geben Sie mir einen Weg, auf die Sitzungsvariablen zuzugreifen

7
Roy Justin

Sie können dies für eine Variable String tun:

<script type="text/javascript">
    var someSessionVariable = '@Session["SomeSessionVariable"]';
</script>

Oder so, wenn es numerisch ist:

<script type="text/javascript">
    var someSessionVariable = @Session["SomeSessionVariable"];
</script>

Dies ist jedoch kein sehr sauberer Ansatz und erfordert Inline-JavaScript statt Skriptdateien. Seien Sie vorsichtig, dass Sie sich nicht mitreißen lassen.

18
Yuck

Ich persönlich mag das Datenattributmuster.

In Ihrem Razor-Code:

<div id="myDiv" data-value="@Request.RequestContext.HttpContext.Session["someKey"]"></div>

In Ihrem Javascript:

var value = $("#myDiv").data('value');
6
Moeri

Für Google-Suchende

Wenn Sie auf die Sitzungsvariable in einer externen .js-Datei zugreifen möchten, können Sie dies einfach tun.

------ 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> 

InnerhalbNewFile.js

$(document).ready(function () {
    alert(mySessionVariable);
});
0
Shree Krishna

In meinem asp.net bekomme ich das Ergebnis nicht durch

     <script type="text/javascript">
          var someSessionVariable = '@Session["SomeSessionVariable"]';
     </script>

Aber ich bekomme die Antwort mit dem folgenden Code:

<script type="text/javascript">

     var yourVariable = '<%= Session["SessionKey"] %>';

</script>
0
shridhar