在使用MVC3 / Razor上传新图像后,尝试强制刷新最新图像?

时间:2014-03-24 22:45:39

标签: asp.net-mvc asp.net-mvc-3 razor

我正在使用MVC3,Razor,C#,EF4.1,MSSQL2008

我已经实施了一种将文件上传到网络服务器的机制"上传"文件夹中。

我遇到的问题是当用户返回"上传"看来,图像仍然是旧图像。这可能与我使用用户组织的PK作为文件名即100.png这一事实有关。因此,交换图像将产生另一个100.png,即覆盖原始图像。如果我使用GUID,这可以防止大量垃圾文件。然而,浏览器认为没有任何改变,所以加载它,我想,从缓存中加载。

我的剃刀代码是:

    if (File.Exists(Server.MapPath("~/Uploads/" + strImageFileName)))
    {
        <p><img alt="Current Image" src="@Href("~/Uploads/" + strImageFileName)"/> </p>
    }
    else
    {
        <p><img alt="Current Image" src="@Href("~/Uploads/NoImageFile.png")"/> </p>
    }

如果我遇到这个问题,那么Shift Refresh通常会完成这项工作,尽管我希望这是自动的。有没有办法通过代码强制刷新,因此始终显示最新的图像。出于某种原因,我们确实在Chrome上遇到了更多问题。

思想?

提前致谢。

1 个答案:

答案 0 :(得分:1)

更改链接引用的url似乎是使用AJAX的轻量级解决方案。

http://www.immense.net/force-update-cached-files-images-favicon/

通过添加任意类似的版本号。浏览器将使用当前版本更新兑现图像。

<img alt="Current Image" src="@Href("~/Uploads/" + strImageFileName + Version )"

您可能希望使用操作将图像通过直接网址返回到图像。如果你还没有这样做。