【问题标题】:Getting session value in javascript在 javascript 中获取会话值
【发布时间】:2020-03-11 13:16:26
【问题描述】:

我正在为我的 asp.net 项目使用外部 javascript 文件。现在我想在那个 javascript 中获取会话值。如何获取该 javascript 文件中的会话值?

提前谢谢..

【问题讨论】:

  • 你能发布一个示例代码吗?
  • 会话数据存储在服务器上。你不能直接用 JavaScript 访问它。

标签: javascript asp.net session


【解决方案1】:
<script>
var someSession = '<%= Session["SessionName"].ToString() %>';
alert(someSession)
</script>

这段代码可以用 Aspx 编写。如果你想在一些 js.file 中使用它,你有两种方法:

  1. 制作编写完整JS代码的aspx文件,并将该文件的源设置为Script src
  2. 制作处理程序,将 JS 文件处理为 aspx。

【讨论】:

    【解决方案2】:

    您可以访问会话变量,例如 ''

    单引号中的文本将给出会话值。 1)

    <script>
    var session ='<%= Session["VariableName"]%>'
    </script>
    

    2) 你可以在服务器上取一个隐藏字段并赋值;

    hiddenfield.value= session["xyz"].tostring();

    //and in script you access the hiddenfield  like
    
    alert(document.getElementbyId("hiddenfield").value);
    

    【讨论】:

    • 你有错误,应该是&lt;%= Session["Variable"] %&gt;,方括号不要括号。
    【解决方案3】:

    对我来说,这段代码在 JavaScript 中的工作就像一个魅力!

    <%= session.getAttribute("variableName")%>
    

    希望对你有帮助……

    【讨论】:

    • 这个 javaScript 函数恰好在我的 JSP 中。
    【解决方案4】:

    我尝试使用 ASP.NET MVC 5,它对我有用

    var sessionData = "@Session["SessionName"]";
    

    【讨论】:

      【解决方案5】:
      protected void Page_Load(object sender, EventArgs e)
          {
              Session["MyTest"] = "abcd";
      
              String csname = "OnSubmitScript";
              Type cstype = this.GetType();
      
              // Get a ClientScriptManager reference from the Page class.
              ClientScriptManager cs = Page.ClientScript;
      
              // Check to see if the OnSubmit statement is already registered.
              if (!cs.IsOnSubmitStatementRegistered(cstype, csname))
              {
                  string cstext = " document.getElementById(\"TextBox1\").value = getMyvalSession()  ; ";
                  cs.RegisterOnSubmitStatement(cstype, csname, cstext);
              }
      
              if (TextBox1.Text.Equals("")) { }
              else {
                    Session["MyTest"] = TextBox1.Text;
              }
      
          }
      
      
      <html xmlns="http://www.w3.org/1999/xhtml">
      <head runat="server">
      
          <script language=javascript type="text/javascript">
              function getMyvalSession() {
      
                   var txt = "efgh";
                   var ff = '<%=Session["MyTest"] %>' + txt;
                   return ff ;
              }
          </script>
      
      </head>
      <body>
      
          <form id="form1" runat="server">
          <div>
              <asp:TextBox ID="TextBox1" runat="server"  AutoPostBack=true ></asp:TextBox>
           <input type="submit"  value="Submit" />
          </div>
          </form>
      </body>
      </html>
      

      【讨论】:

        【解决方案6】:

        如果你使用VB作为后面的代码,你必须使用括号“()”而不是方括号“[]”。

        VB 示例:

        <script type="text/javascript">
        var accesslevel = '<%= Session("accesslevel").ToString().ToLower() %>';
        </script>  
        

        【讨论】:

          【解决方案7】:
          var sessionVal = '@Session["EnergyUnit"]';
          alert(sessionVal);
          

          【讨论】:

            猜你喜欢
            • 2014-06-25
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2018-02-05
            • 2013-07-16
            • 1970-01-01
            • 2014-07-13
            • 2011-09-01
            相关资源
            最近更新 更多