如何使用javascript获取会话值
How to get session value using javascript
我有一个类来处理会话变量。这是一个附加的样本:
namespace General
{
public class Session
{
public Session()
{
}
public static string UserID
{
get { return HttpContext.Current.Session["UserID"] as string ?? String.Empty; }
set { HttpContext.Current.Session["UserID"] = value; }
}
public static string departFlightID
{
get { return HttpContext.Current.Session["departFlightID"] as string ?? String.Empty; }
set { HttpContext.Current.Session["departFlightID"] = value; }
}
public static string returnFlightID
{
get { return HttpContext.Current.Session["returnFlightID"] as string ?? String.Empty; }
set { HttpContext.Current.Session["returnFlightID"] = value; }
}
}
}
现在,在某个时刻,我将flightID
存储在:中
General.Session.departFlightID = flightID;
在另一点上,我想使用Javascript检索这个值。我在这里看到了一些例子,但它们不起作用(没有错误,但它们会返回EMPTY
)。
最近的尝试:
var session = '<%= General.Session.departFlightID %>';
var session = '<%= HttpContext.Current.Session["departFlightID"] %>';
如果我在页面加载上设置值,它确实有效,但我运行的是一个web方法,在该方法中我创建一个html,然后将该html发送回div中进行填充,从而在那里生成一个票证。我需要获取会话值,但它不会更新。
更清楚的是这里的Javascript代码:
<script type="text/javascript">
function addTicket(flightID, flightType) {
PageMethods.addTicket(flightID, flightType, OnGetMessageSuccess);
}
function OnGetMessageSuccess(result, userContext, methodName) {
var pageUrl = document.URL;
if (pageUrl.indexOf("&ret_date=&") !== -1) {
var session = '<%= HttpContext.Current.Session["departFlightID"] %>';
alert(session);
result = result + "<a onclick='"searchflight.abortAllAjax()'" data-index='"6'" class='"bookNow'" title='"Book Now!'" href='"#'">Book Now!</a>";
result = result + "</div> </div> </div>";
document.getElementById("detail").innerHTML = result;
}
}
这是网络方法:
[System.Web.Services.WebMethod]
public static string addTicket(string flightID, string flightType)
{
//GET FLIGHT DETAILS FROM DATATABLE OR SESSION DATA TABLE
string tmpHtml = string.Empty;
tmphtml="sample";
string flightID="123123213";
General.Session.departFlightID=flightID;
return tmphtml;
}
这是与此处相同的问题。
我们通常在会话变量中有敏感数据,所以它们总是在服务器端。不过,如果你愿意,你可以尝试在.aspx标记中添加一个HiddenField,并在代码后面设置它。一旦设置了值,就可以使用$("#id")方式或Document.GetElementById()方法非常容易地访问该值。
如果您使用的是mvc,那么:
var ttype = ' @HttpContext.Current.Session["TestType"] ';
WebMethods默认情况下不支持会话变量。您的WebMethod声明应该如下所示:
[WebMethod(EnableSession = true)]
相关文章:
- Php未获取会话的最新值
- 如何获取登录到当前会话的用户的ID
- 从javascript变量获取php会话
- 无法获取php会话变量以在javascript中设置var
- 在javascript中获取django站点的会话ID
- Fetch Api无法从PHP服务器获取会话
- 如何在java脚本中获取会话id
- 使用PHP'获取存储的user_id;的数据库会话
- 如何在不回显的情况下将会话值获取到客户端
- 如何在 JSP 页面中获取 JavaScript 会话属性
- 从服务器端代码获取会话信息到客户端代码
- Socket.io:随时获取客户端会话 ID
- 从javascript中的不同形式获取值并存储在php会话中
- 如何在用户会话的辅助页面中获取 GA utm 参数
- 如何使用 C# 获取或设置本地存储或会话存储存储
- 如何在 HTML 中获取会话范围属性
- 从我的 MVC 应用程序获取会话值到我的 Javascript 中
- 如何在.js文件的javascript函数中获取php会话数据
- 无法从带有 Socket.IO 的 Cookie 获取快速会话 ID
- 使用 jQuery 获取会话值