【问题标题】:Session not maintaining in asp page from handler会话未在处理程序的 asp 页面中维护
【发布时间】:2013-04-15 09:16:29
【问题描述】:

在我们的项目中,我在 asp.net 处理程序(.ashx 页面)中分配 context.Session["StackImgInsert"]="some string"
现在,当我读取Session["StackImgInsert"] 的值时,我想在 ASP 页(.aspx)中创建Session["StackImgInsert"]=null,然后它显示为null
谁能告诉如何从处理程序中读取会话并将其设为空。

【问题讨论】:

  • 你赋值为null,然后它为null,真是一个巨大的惊喜。
  • 阅读您的问题并诚实地告诉我 - 您的问题对您有意义吗?如果你是我们,你会明白吗?
  • 因此您已成功将 ashx 中的会话值设置为“某个字符串”。现在您将其设置为null 有问题吗?在该代码中将"some string" 替换为null
  • 我已将会话值设置为 ashx 页面中的某个字符串。现在我想在我的 ascx 页面(不是我之前提到的 aspx 页面)中将该会话值设为“null”。但是当我在我的 ascx 页面中读取该会话值时,该值始终为空。现在,当我返回我的 ashx 页面时,为了获得更多功能,会话仍会显示。这里的问题是我无法读取该会话值并在我的 ascx page_load() 方法中使其为空。

标签: asp.net


【解决方案1】:

你需要在你的类名中使用这个IReadOnlySessionState,如下所示

 public class GetFeatures : IHttpHandler, IReadOnlySessionState
 {
      context.Session["StackImgInsert"]="some string";
 }

【讨论】:

  • IReadOnlySessionState 仅用于读取该处理程序中的会话。我使用了 IRequiresSessionState,它用于在处理程序中读取和设置会话值,它在处理程序中工作正常。但是,在 .aspx 页面中,我无法读取该会话值。
  • 原因可能是您在处理程序调用之前读取了值。
  • 处理程序首先触发,然后在 .aspx 页面中的 page_load() 中,我无法读取该特定会话值
  • 你是通过jQuery在同一个网页上调用handler吗?
  • 我已将会话值设置为 ashx 页面中的某个字符串。现在我想在我的 ascx 页面(不是我之前提到的 aspx 页面)中将该会话值设为“null”。但是当我在我的 ascx 页面中读取该会话值时,该值始终为空。现在,当我返回我的 ashx 页面时,为了获得更多功能,会话仍会显示。这里的问题是我无法读取该会话值并在我的 ascx page_load() 方法中使其为空
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-07-23
  • 2012-08-01
  • 2012-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多