我想在asp.net mvc应用程序中访问javascript中的会话变量。我已经找到了一种在aspx视图引擎中执行此操作但不在剃刀中的方法。
请告诉我一种访问会话变量的方法
答案 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>