2014-01-07 103 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。 –