【问题标题】:ASHX handler; fires up only onceASHX 处理程序;只触发一次
【发布时间】:2011-03-07 12:34:30
【问题描述】:

我有一个简单的 ASHX 处理程序,它返回动态生成的图像;图像是从自定义创建的类生成的,属于此类的对象使用 Session 传递给处理程序(我宁愿避免使用 QueryString)。

处理程序用作 ASP 表单上图像的 URL,非常简单:一个下拉列表、一个按钮和一个图像。基本上,根据用户从列表中选择的内容,一旦按下按钮就会生成相应的图像。

在开始时,实际图像的 Visible 属性设置为 false;我不希望处理程序在数据全部存在之前显示任何内容。

按下按钮后,将添加包含必要对象的所需 Session 参数,并使用 Server.Transfer 刷新页面。当Page_load方法检测到Session参数设置正确时,将图片上的Visible参数设置为true。

之后,处理程序启动并生成图像。

到目前为止一切顺利...但是,如果用户现在选择了与列表不同的内容并按下按钮,尽管在 Session 中传递了正确的对象,图像将不会更新。事实上,处理程序甚至不会启动(如果我在那里设置断点)。我需要关闭浏览器窗口并重新打开它才能工作。

任何想法可能是这种行为的原因?

我怀疑答案很简单,我只是不了解 ASP(或处理程序)的基本知识...

【问题讨论】:

    标签: asp.net image dynamic httphandler ashx


    【解决方案1】:

    图像可能缓存在客户端,浏览器没有费心从服务器请求新版本。在ProcessRequest方法的开头添加:

    context.Response.Cache.SetCacheability(HttpCacheability.NoCache);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多