MVC 以某种方式在运行之间缓存嵌入式视图
MVC somehow caching embedded views between runs
我的组织正在使用 Razor 视图作为嵌入式文件,以便为我们的应用程序实施附加框架。
由于某些未知原因,嵌入式视图的内容最终会在运行过程中被缓存。 IE。 运行,转到页面,停止,编辑插件视图,构建插件,运行,刷新页面,使用旧视图。
我尝试过的事情:
[OutputCache(NoStore = true, Duration = 0, VaryByParam = "None")]
和
<system.web>
<compilation targetFramework="4.7" debug="true" optimizeCompilations="false">
</system.web>
删除 bin 和 obj 文件夹(尽我所能,Razor 锁定了一些文件)导致此 'cache' 被重置。这可能是重建的结果。两个文件夹中都没有存储附加视图的文件。
加载项使用 Assembly.LoadFrom。
仍然不确定这是什么原因,但我解决了这个问题,方法是将程序集的最后修改日期时间和其中的视图放入虚拟路径,然后 MVC 将使用该虚拟路径来请求视图。
我通过重写 RazorViewEngine
和重写 FindView
和 FindPartialView
方法来指定 MVC 用于加载视图的虚拟路径。
我的组织正在使用 Razor 视图作为嵌入式文件,以便为我们的应用程序实施附加框架。
由于某些未知原因,嵌入式视图的内容最终会在运行过程中被缓存。 IE。 运行,转到页面,停止,编辑插件视图,构建插件,运行,刷新页面,使用旧视图。
我尝试过的事情:
[OutputCache(NoStore = true, Duration = 0, VaryByParam = "None")]
和
<system.web>
<compilation targetFramework="4.7" debug="true" optimizeCompilations="false">
</system.web>
删除 bin 和 obj 文件夹(尽我所能,Razor 锁定了一些文件)导致此 'cache' 被重置。这可能是重建的结果。两个文件夹中都没有存储附加视图的文件。
加载项使用 Assembly.LoadFrom。
仍然不确定这是什么原因,但我解决了这个问题,方法是将程序集的最后修改日期时间和其中的视图放入虚拟路径,然后 MVC 将使用该虚拟路径来请求视图。
我通过重写 RazorViewEngine
和重写 FindView
和 FindPartialView
方法来指定 MVC 用于加载视图的虚拟路径。