Javascript 在javascript中获取会话值

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/8396070/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-24 05:50:24  来源:igfitidea点击:

Getting session value in javascript

javascriptasp.netsession

提问by ZMR BINU

I am using an external javascript file for my asp.net project. Now i want to get the session value in that javascript. How can i get the session value in that javascript file?

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

Thanks in advance..

提前致谢..

回答by hungryMind

<script>
var someSession = '<%= Session["SessionName"].ToString() %>';
alert(someSession)
</script>

This code you can write in Aspx. If you want this in some js.file, you have two ways:

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

  1. Make aspx file which writes complete JS code, and set source of this file as Script src
  2. Make handler, to process JS file as aspx.
  1. 制作编写完整JS代码的aspx文件,并将该文件的源设置为Script src
  2. 制作处理程序,将 JS 文件处理为 aspx。

回答by Rashmi Kant Shrivastwa

You can access your session variable like '<%= Session["VariableName"]%>'

您可以访问您的会话变量,如 '<%= Session["VariableName"]%>'

the text in single quotes will give session value. 1)

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

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

2) you can take a hidden field and assign value at server;

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

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

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

//and in script you access the hiddenfield  like

alert(document.getElementbyId("hiddenfield").value);

回答by Gilbert_Prashant

For me this code worked in JavaScript like a charm!

对我来说,这段代码在 JavaScript 中工作得很好!

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

hope it helps...

希望能帮助到你...

回答by Bhushan Mahajan

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>

回答by Theodor Alexander Hkansson Hei

var sessionVal = '@Session["EnergyUnit"]';
alert(sessionVal);

回答by LifeiSHot

If you are using VB as code behind, you have to use bracket "()" instead of square bracket "[]".

如果您使用 VB 作为代码隐藏,则必须使用方括号“()”而不是方括号“[]”。

Example for VB:

VB 示例:

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

回答by Kelum Priyadarshane

I tried following with ASP.NET MVC 5, its works for me

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

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