【问题标题】:how to map image to image button in asp.net with session using c#?如何使用 c# 使用会话将图像映射到 asp.net 中的图像按钮?
【发布时间】:2014-01-30 04:54:32
【问题描述】:

我的项目解决方案中有一个图像文件夹。我为客户捕捉图像并将其保存在其中。填写详细信息后,我重定向到另一个 aspx 页面,然后拍摄照片并返回注册页面并将图像映射到图像按钮,我正在使用会话变量来映射图像文件夹中的图像路径。我的问题是即使我拍了一张新照片,我也会得到相同的图像。我在图像文件夹中一次只保留一张照片,为什么我会得到不在图像文件夹中的上一张图像。我不应该得到我拍的新照片吗?请详细说明这一点并为我提供解决方案..我将不胜感激..

【问题讨论】:

  • 我认为您的浏览器正在缓存图像。您必须编写一些逻辑来缓存图像..
  • 我正在使用会话状态模式="Inproc" 我应该使用哪种模式
  • inProc 支持 Session_OnEnd 事件在这个事件中写一些逻辑来清除缓存...嗯 TGH 已经给出了一个很好的解决方案。
  • thanx Talha Hanjra..我会尝试你给出的想法..
  • 我已将会话超时设置为 20 分钟...为什么即使在 20 分钟结束后我仍会得到相同的图像...请多加注意

标签: c# javascript asp.net .net html


【解决方案1】:

可能存在浏览器缓存。解决它的一种方法是向图像 url(时间戳等)添加一个随机查询字符串参数,以使图像 url 唯一。

<img src="someImage.png?someParam=1234" />

【讨论】:

  • 除了这个还有其他选择吗..请给我建议
  • 这里有一个类似问题的答案,假设是由于浏览器缓存stackoverflow.com/questions/728616/…
  • Thanx TGH 我会尝试这个逻辑
  • 感谢 TGH,这是浏览器中的缓存问题
【解决方案2】:

您不能以编程方式删除浏览器缓存,但是下面的代码将帮助您禁用缓存并清除应用程序中的现有缓存...正如您在问题中解释的那样,缓存是您的问题。

public static void DisablePageCaching()
{
    //Used for disabling page caching
    HttpContext.Current.Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1));
    HttpContext.Current.Response.Cache.SetValidUntilExpires(false);
    HttpContext.Current.Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
    HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache);
    HttpContext.Current.Response.Cache.SetNoStore();
} 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多