gpt4 book ai didi

c# - 如何使用javascript获取 session 值

转载 作者:可可西里 更新时间:2023-11-01 02:45:48 25 4
gpt4 key购买 nike

我有一个类来处理 session 变量。这是一个示例:

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 中以在那里制作票证。我需要获取 session 值,但它不会更新。

为了更清楚这里是 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;
}

最佳答案

这与 here 是同一个问题.

我们通常在 session 变量中有敏感数据,所以它们总是在服务器端。不过,如果您愿意,可以尝试在 .aspx 标记中添加 HiddenField,并在后面的代码中设置它。设置值后,您可以使用 $("#id") 方式或 Document.GetElementById() 方法非常轻松地访问该值。

关于c# - 如何使用javascript获取 session 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17700296/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com