我有一个存储在 HttpContext 中的项目:
HttpContext.Current.Items["myItem"] = "123";
我可以从任何页面的方法访问这个没有问题。例如:
protected override void OnLoad(EventArgs e)
{
string l_myItemVal = HttpContext.Current.Items["myItem"] as string; // "123"
}
这工作正常。
但是,当通过 AJAX 调用页面的 Web 方法之一时,会失败:
[System.Web.Services.WebMethod]
[System.Web.Script.Services.ScriptMethod]
public static string MyWebMethod()
{
string l_myItemVal = HttpContext.Current.Items["myItem"] as string; // NULL
}
异步调用的 HttpContext 与页面的 HttpContext 是否不同?