我想在我的某个应用程序页面中减少回发并使用ajax。我使用WebMethod这样做。我有一个静态的WebMethod需要访问会话变量并进行修改。在客户端,我使用jQuery调用此方法。我尝试按如下方式访问会话:
[WebMethod]
public static void TestWebMethod()
{
if (HttpContext.Current.Session["pitems"] != null)
{
log.Debug("Using the existing list");
Product prod = (Product)HttpContext.Current.Session["pitems"];
List<Configs> confs = cart.GetConfigs();
foreach (Configs citem in confis)
{
log.Info(citem.Description);
}
}
log.Info("Inside the method!");
}
值正确显示并且似乎有效..但我想知道是否允许这种做法,因为该方法是静态方法,并且想知道如果多人访问应用程序它将如何表现。
我还想知道如果这不是正确的方法,开发人员如何在ASP中执行这些任务。
提前感谢您的建议和想法,
阿卜杜勒·奥拉卡拉
答案 0 :(得分:4)
静态方法使用起来非常安全。一些人遇到跨越请求共享字段的问题只发生在静态字段中,因为它们确实在同一进程中共享。
我认为你的方法是解决这个问题的好方法。这正是Web方法的用途。