【问题标题】:How to create session variable and retrieve in JavaScript MVC3如何在 JavaScript MVC3 中创建会话变量和检索
【发布时间】:2013-04-16 08:13:10
【问题描述】:

我想在 JavaScript 中创建一个变量 Session 并在同一个 JavaScript 中检索它

我的代码

  '<%Session["Test"] = "Welcome DS";%>';
        var session_value = '<%=Session["Test"]%>';
        alert(session_value);

它给出“" 警报结果,它没有给出 Session 值

【问题讨论】:

  • 我在您的问题中添加了 razor 标签,因为当前问题表明您使用的是不同的视图引擎。

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


【解决方案1】:

您使用了错误的语法,该语法适用于其他版本的 razor。您可以将其更改为:

alert('@Session["Test"]');

注意@ 符号的使用。您可以refer to this page 获取正确的语法。

【讨论】:

  • 您不必使用剃须刀引擎。您仍然可以使用传统的 asp.net 语法。
  • 如果我现在可以尝试,我会的。 OP 将他的问题标记为 MVC 3,因此我假设该项目位于 MVC 3 中,并且该语法不起作用。 &lt;%= =%&gt; 将不再起作用。
  • 再次......您不必使用 Razor 引擎。在创建项目时,您可以选择使用旧的视图引擎(默认选项是“Razor”或“ASPX”),在这种情况下这将完美运行。 (在 MVC4 中仍然如此)
  • 我们都可以先询问 OP,然后再询问他使用的引擎。我想我确实提到他可能使用了错误的剃须刀引擎。
  • @Yoeri,是的,谢谢,同样的原因我没有拒绝你的投票,因为我知道这也是有效的。此外,对我来说,投反对票仅适用于永远不会起作用的误导不正确信息。
【解决方案2】:

ASP.NET 认为你写的是纯字符串。 如果我们谈论的是 .aspx 文件,删除引号应该可以解决问题。

<%Session["Test"] = "Welcome DS";%>

var session_value = <%=Session["Test"]%>;

【讨论】:

  • 没有引号它不工作,它的显示,警告靠近
  • 您能否确认您使用的是正确的视图引擎?您正在写入的文件的扩展名是什么?
  • 文件扩展名为.cshtml
  • 那么你确实从一开始就写错了语法。
  • 无论您选择将项目更改为 ASPX 视图引擎还是开始阅读以下内容:haacked.com/archive/2011/01/06/…
【解决方案3】:

如果你真的只需要 Javascript 中的会话变量,为什么不使用客户端会话变量?

例如html5sessionStorage

你可以这样设置:

sessionStorage.myVariable = "myvalue";

然后这样读:

var x = sessionStorage.myVariable

【讨论】:

    猜你喜欢
    • 2013-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-24
    • 1970-01-01
    • 2020-04-07
    • 2019-05-04
    • 2021-12-30
    相关资源
    最近更新 更多