2014-01-07 75 views
7

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

请告诉我一个方法来访问会话变量

+1

您是否尝试将会话值添加到模型中? – diceler

回答

17

你可以做这样一个String变量:

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

或者这样,如果它的数字:

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

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

6

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

在你的剃须刀代码:

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

在你的JavaScript:

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

如何从我的控制器访问并获取此会话的值? –

+0

在任何MVC或Web API控制器中,只需键入'var myValue = Session [“MyKey”];'获取“MyKey”的值 – Moeri

+0

非常感谢,我会尝试。 –

0

对于谷歌搜索,

此外,如果要访问外部的会话变量.js文件,你可以简单地这样做,

​​

NewFile.js

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

在我的asp.net,我没有得到通过

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

的结果,但我得到下面的代码答案,

<script type="text/javascript"> 

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

</script> 
+0

我想,你的应用程序中没有使用MVC。 –