在JavaScript中访问会话变量

时间:2014-01-07 13:28:47

标签: javascript asp.net asp.net-mvc session razor

我想在asp.net mvc应用程序中访问javascript中的会话变量。我已经找到了一种在aspx视图引擎中执行此操作但不在剃刀中的方法。

请告诉我一种访问会话变量的方法

4 个答案:

答案 0 :(得分:19)

您可以通过这种方式为String变量执行此操作:

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

或者像这样,如果是数字:

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

这实际上不是一个非常干净的方法,并且需要内联JavaScript而不是使用脚本文件。小心不要被这个带走。

答案 1 :(得分:6)

我个人喜欢数据属性模式。

在你的Razor代码中:

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

在你的javascript中:

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

答案 2 :(得分:0)

对于谷歌搜索者,

此外,如果您想访问外部.js文件中的会话变量,您可以这样做,

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

NewFile.js

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

答案 3 :(得分:0)

在我的asp.net中,我没有得到

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

但我通过以下代码得到答案,

<script type="text/javascript">

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

</script>