1

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

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

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

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

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

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

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

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

4

1 回答 1

4

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

context.Response.Cache.SetCacheability(HttpCacheability.NoCache);
于 2010-06-23T20:29:40.977 回答