C# 页面方法上的空会话
我使用的是InProc会话状态,由于一些奇怪的原因,当我使用page方法时,会话变量总是null 如果我这样做:C# 页面方法上的空会话,c#,asp.net,session,C#,Asp.net,Session,我使用的是InProc会话状态,由于一些奇怪的原因,当我使用page方法时,会话变量总是null 如果我这样做: var test = HttpContext.Current.Session["test"]; 当我在一个页面方法上运行时,它不显示任何内容,但如果我继续调试并打开另一个页面,它将显示预期的结果。我无法发布应用程序的所有代码,所以我应该从哪里开始查找 web.config文件如下所示: <sessionState mode="InProc"/> 谢谢。如果您在
var test = HttpContext.Current.Session["test"];
当我在一个页面方法上运行时,它不显示任何内容,但如果我继续调试并打开另一个页面,它将显示预期的结果。我无法发布应用程序的所有代码,所以我应该从哪里开始查找
web.config文件如下所示:
<sessionState mode="InProc"/>
谢谢。如果您在母版中设置“test”
,则webmethod中的“test”将为空。webmethod
对masterpage
一无所知
[System.Web.Services.WebMethod(EnableSession=true)]
public static string Bla(double bla)
{
//code here
var test = HttpContext.Current.Session["test"];
}
首先,我们解释一下在什么上下文中使用上述代码。这是否在某个页面的代码behinde中(我想是的)-在此之前是否将某个值设置为“test”?是否在使用该变量之前设置该变量?您是否在农场上运行该web应用程序?InProc会话状态不适用于此场景。上面的代码位于页面方法和2个不同的aspx页面代码中。该变量在母版页中设置为值“testworks”。当我调试aspx pages测试时,会保存该变量,但当我调试page方法时,该变量为null。我添加了enablesession参数,但它仍然不起作用。我很困惑;它过去是有用的。另一方面,page方法被声明为静态的。我在母版页中设置了会话,然后当我使用page方法时,它应该是可检索的;这就是问题所在。会话在aspx页面中工作,但在页面方法中不工作