Asp.net MVC3视图上.htm的缓存问题。

Asp.net MVC3视图上.htm的缓存问题。,asp.net,asp.net-mvc,asp.net-mvc-3,Asp.net,Asp.net Mvc,Asp.net Mvc 3,我有一个将外部HTML加载到iframe的视图。我不知道iframe是否加剧了问题,但即使iframe加载的文件内容早已被更新的工作内容替换,Chrome仍会将旧的、损坏的HTML文件的重影加载到iframe中。幸运的是,我的文件是用GUID命名的,所以我可以通过简单地重命名文件来解决这个问题,但我想深入了解这个问题。我使用的是内置web服务器,而不是IIS 我对IFRAMES的辩解: 我的管理员最终用户将上传从Excel发布的HTML,以及它所有的血淋淋的样式。编写导入代码在这一阶段非常复杂。

我有一个将外部HTML加载到iframe的视图。我不知道iframe是否加剧了问题,但即使iframe加载的文件内容早已被更新的工作内容替换,Chrome仍会将旧的、损坏的HTML文件的重影加载到iframe中。幸运的是,我的文件是用GUID命名的,所以我可以通过简单地重命名文件来解决这个问题,但我想深入了解这个问题。我使用的是内置web服务器,而不是IIS

我对IFRAMES的辩解:
我的管理员最终用户将上传从Excel发布的HTML,以及它所有的血淋淋的样式。编写导入代码在这一阶段非常复杂。

我通常做的不是重命名文件,而是使用服务器端生成的某种密钥向我页面上的所有静态数据追加查询字符串

通过这种方式,您可以确保在更改JS、CSS、HTML和任何其他静态内容类型时重新加载它们

您可以做的另一件事是让iframe指向充当静态页面代理并返回它的内容。对于您试图做的事情,可能有点过分了,我更喜欢querystring方法


至于问题的症结所在,iFrame存在着众所周知的缓存问题,其中之一是实际url的缓存,因此是上面的第二个选项。

谢谢@Jamie。幸运的是,在制作过程中,对文件内容的每一次更改都意味着一次新的上传,因此也意味着一个新的文件名。我很惊讶还没有人告诉我远离iFrame。