Asp.net mvc 3 MVC 3使用相同的名称更新上载的图像

Asp.net mvc 3 MVC 3使用相同的名称更新上载的图像,asp.net-mvc-3,Asp.net Mvc 3,我被一个形象问题难住了。。。这是秘密 在我的布局我有一个形象,作为一个标志。。。然而,在管理视图中,可以上传一个新的徽标,它只是用完全相同的名称替换当前的徽标。回发后,即使保存了更新的图像,图像也不会在布局上更改为更新的图像。如果我用ctrl和F5刷新页面,缓存消失了,我可以看到新的图像,但我需要它更加自动化 这是我的img标签在布局中 <img src="@Url.Content("~/Content/themes/base/images/Client_Logo.jpg")" id="C

我被一个形象问题难住了。。。这是秘密

在我的布局我有一个形象,作为一个标志。。。然而,在管理视图中,可以上传一个新的徽标,它只是用完全相同的名称替换当前的徽标。回发后,即使保存了更新的图像,图像也不会在布局上更改为更新的图像。如果我用ctrl和F5刷新页面,缓存消失了,我可以看到新的图像,但我需要它更加自动化

这是我的img标签在布局中

<img src="@Url.Content("~/Content/themes/base/images/Client_Logo.jpg")" id="ClientLogo" alt="" width="227" height="130" style="float: left;" />
上传图像后返回视图时,每个人都建议如何刷新版面中的图像


干杯。

我能想到的最快的修复方法是用随机的东西显示你的徽标,这样客户端就不会像这样命中缓存:

"/images/yourlogo.png?version=123455634"
用总是随机的东西替换
123455634

由于图片的url永远不会相同,因此图片将始终被下载

您可以为这个特定的文件处理缓存头,但这是我能想到的最快的修复方法

希望这有帮助

编辑并尝试以下操作:


我能想到的最快的修复方法是用一些随机的东西显示你的徽标,这样客户端就不会像这样命中缓存:

"/images/yourlogo.png?version=123455634"
用总是随机的东西替换
123455634

由于图片的url永远不会相同,因此图片将始终被下载

您可以为这个特定的文件处理缓存头,但这是我能想到的最快的修复方法

希望这有帮助

编辑并尝试以下操作:


好吧,您可以将该文件上的缓存头设置为不在web.config中缓存,但这并不理想

来点jQuery怎么样

在布局中:

<img src="@Url.Content("~/Content/themes/base/images/Client_Logo.jpg")" id="ClientLogo" alt="" width="227" height="130" style="float: left;" data-src="@Url.Content("~/Content/themes/base/images/Client_Logo.jpg")"/>

在您希望更改图像的视图中:

<script type="text/javascript">
     $(function(){
          $('#ClientLogo').attr('src',$('#ClientLogo').data('src') + '?t=' + new Date().getTime());
    });
</script>

$(函数(){
$('ClientLogo').attr('src',$('ClientLogo').data('src')+'?t='+新日期().getTime());
});

好吧,您可以将该文件上的缓存头设置为不在web.config中缓存,但这并不理想

来点jQuery怎么样

在布局中:

<img src="@Url.Content("~/Content/themes/base/images/Client_Logo.jpg")" id="ClientLogo" alt="" width="227" height="130" style="float: left;" data-src="@Url.Content("~/Content/themes/base/images/Client_Logo.jpg")"/>

在您希望更改图像的视图中:

<script type="text/javascript">
     $(function(){
          $('#ClientLogo').attr('src',$('#ClientLogo').data('src') + '?t=' + new Date().getTime());
    });
</script>

$(函数(){
$('ClientLogo').attr('src',$('ClientLogo').data('src')+'?t='+新日期().getTime());
});

尝试过,但不起作用。。。我相信这是因为图像在布局中,而不是视图中。尝试过但不起作用。。。我相信这是因为图像在布局中,而不是视图中。我相信这会起作用,但是我刚刚在web.config文件中关闭了缓存。。。理想情况下,我不需要缓存,因为它不会用作internet应用程序,只用于intranet。我相信这会起作用,但我刚刚在web.config文件中关闭了缓存。。。理想情况下,我不需要缓存,因为它不会用作internet应用程序,而只是intranet。