在 javascript 中访问会话变量

Access Session Variable in javascript

我需要访问 javascript 中的会话变量。我尝试了所有示例,但其中 none 个可以正常工作。我不知道我做错了什么。

我有以下内容:

成功登录后,在我的帐户控制器中,我像这样设置我的会话变量。

 HttpContext.Session.Add("IsShowStartPopUp", true);

在我的登陆视图中,我尝试像这样访问会话变量:

<script type="text/javascript">
 
var IsShowStartPopUp = '<%= Session["IsShowStartPopUp"] %>';

</script>

我的结果是:

'<%= Session["IsShowStartPopUp"] %>'

我是不是漏掉了什么?

谢谢。

在您的代码中,您不应在尝试访问动态值时使用争用 '<%= Session["IsShowStartPopUp"] %>' 。否则,它将被视为字符串。

您可以使用sessionStorage

示例:

<script> 
sessionStorage.setItem('mysession','value');

alert(sessionStorage.getItem('mysession'));
</script>

我找到了这个答案:

不,会话状态是服务器端。

然后我使用以下内容:

我还是在controller中设置了用户登录时的session变量

HttpContext.Session.Add("IsShowStartPopUp", true);

然后我在我的 MVC 视图中创建了以下内容:

@if (HttpContext.Current.Session["IsShowStartPopUp"].ToString() == true)
{
    HttpContext.Current.Session["IsShowStartPopUp"] = false;
    <script type="text/javascript">
        window.onload = function () {ShowPopup();}
    </script>
};

这解决了我的问题,如果您有任何建议,欢迎评论。

谢谢