如何访问会话variables,并在JavaScript中设置它们?

在代码隐藏中,我将Session设置为一些数据。

 Session["usedData"] = "sample data"; 

问题是如何获得会话值(在我的例子中,“样本数据”)在JavaScript和设置Session["usedData"]一个新的价值?

使用Javascript访问和分配会话variables:

使用Javascript分配ASP.NET会话variables:

  <script type="text/javascript"> function SetUserName() { var userName = "Shekhar Shete"; '<%Session["UserName"] = "' + userName + '"; %>'; alert('<%=Session["UserName"] %>'); } </script> 

使用Javascript访问ASP.NET Sessionvariables:

 <script type="text/javascript"> function GetUserName() { var username = '<%= Session["UserName"] %>'; alert(username ); } </script> 

您无法直接在JavaScript中访问Session

您可以创build一个隐藏字段并将其传递到您的页面,然后使用JavaScript通过document.getElementById检索对象

尝试这个

 var sessionValue = '<%=Session["usedData"]%>' 

Javascript不能直接设置会话值。 对于从JavaScript设置会话值我做ajax调用如下。

在线检查

在ASPx文件或HTML,

  <script type="text/javascript"> $(function(){ //Getting values from session and saving in javascript variable. // But this will be executed only at document.ready. var firstName = '<%= Session["FirstName"] ?? "" %>'; var lastName = '<%= Session["LastName"] ?? "" %>'; $("#FirstName").val(firstName); $("#LastName").val(lastName); $('Button').click(function(){ //Posting values to save in session $.post(document.URL+'?mode=ajax', {'FirstName':$("#FirstName").val(), 'LastName':$("#LastName").val() } ); }); }); 

在服务器端,

 protected void Page_Load(object sender, EventArgs e) { if(Request.QueryString["mode"] != null && Request.QueryString["mode"] == "ajax") { //Saving the variables in session. Variables are posted by ajax. Session["FirstName"] = Request.Form["FirstName"] ?? ""; Session["LastName"] = Request.Form["LastName"] ?? ""; } } 

为了获得会议价值,正如Shekhar和Rajeev所说的那样

 var firstName = '<%= Session["FirstName"] ?? "" %>'; 

希望这可以帮助。

假设你的意思是“客户端JavaScript” – 那么你不能,至less不能直接。

会话数据存储在服务器上,因此客户端代码在与服务器通信时无法看到它。

要访问它,你必须做一个HTTP请求,并有一个服务器端程序修改/读取和返回数据。

将值分配给代码隐藏文件中的隐藏字段。 在你的JavaScript像一个普通的HTML控制访问这个值。

你不能从Javascript设置会话端会话variables。 如果你想做到这一点,你需要创build一个AJAX POST来更新这个服务器上,但如果select一个汽车是一个重大事件,它可能会更容易张贴这个。

你也可以在一个属性中设置variables,并从js中调用它:

在服务器端:

 Protected ReadOnly Property wasFieldEditedStatus() As Boolean Get Return If((wasFieldEdited), "true", "false") End Get End Property 

然后在javascript中:

 alert("The wasFieldEdited Value: <%= wasFieldEditedStatus %>" ); 

首先在代码后面创build一个方法来设置会话:

  [System.Web.Services.WebMethod] public static void SetSession(int id) { Page objp = new Page(); objp.Session["IdBalanceSheet"] = id; } 

然后从客户端调用它:

 function ChangeSession(values) { PageMethods.SetSession(values); } 

您应该将EnablePageMethods设置为true:

 <asp:ScriptManager EnablePageMethods="true" ID="MainSM" runat="server" ScriptMode="Release" LoadScriptsBeforeUI="true"></asp:ScriptManager> 

我正在寻找解决这个问题,直到我find一个非常简单的解决scheme来访问会话variables,假设你在服务器端使用.php文件。 希望它回答这个问题的一部分:

访问会话值

 <script type="text/javascript"> var value = <?php echo $_SESSION['key']; ?>; console.log(value); </script> 

编辑:下面的更好的例子,你可以尝试在phpfiddle.org,在“代码空间”选项卡

 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <?php $_SESSION['key'] = 10; $i = $_SESSION['key']; ?> </head> <body> <p id="affichage">hello</p> <script type="text/javascript"> var value = <?php echo $i; ?>; $("#affichage").html(value); </script> </body> </html> 

设置会话值

传递一个variables,你可能会想。 例如,

 $you = 13; $_SESSION['user_id'] = $you; 

这应该工作,而不是testing它。

这是一个骗子,但你可以做到这一点,把价值作为一个参数发送到服务器端

 <script> var myVar = "hello" window.location.href = window.location.href.replace(/[\?#].*|$/, "?param=" + myVar); //Send the variable to the server side </script> 

并从服务器端,检索参数

 string myVar = Request.QueryString["param"]; Session["SessionName"] = myVar; 

希望这可以帮助

如果你想在javascript中读取会话值。这段代码对你有帮助。

<script type='text/javascript'> var userID='@Session["userID"]'; </script>