我的组织正在将Razor Views用作嵌入式文件,以便为我们的应用程序实现附加框架。
由于某种未知原因,嵌入式视图的内容最终会在运行之间进行缓存。即运行,转到页面,停止,编辑加载项视图,构建加载项,运行,刷新页面,使用旧视图。
我尝试的事情:
// VARIABLES
double inputTemperature; // Stores user input
// INPUT
if (!double.TryParse(txtTemperature.Text, out inputTemperature)) // Checking that user input is valid
{
//textbox did not contain a valid double
}
// PROCESSING
if (optCelsius.Checked) // If the celsius button is clicked, then the temperature needs to be converted from fahrenheit
{
lblNewTemperature.Text = $"{inputTemperature} degrees Fahrenheit converts to {ConvertFahrenheitToCelsius(inputTemperature)} degrees Celsius."
}
else if (optFahrenheit.Checked) // If the fahrenheit button is clicked, then the temperature needs to be converted from celsius
{
lblNewTemperature.Text = $"{inputTemperature} degrees Celsius converts to {ConvertCelsiusToFahrenheit(inputTemperature)} degrees Fahrenheit.";
}
和
[OutputCache(NoStore = true, Duration = 0, VaryByParam = "None")]
删除bin和obj文件夹(尽可能多,Razor锁定一些文件)导致这个'缓存'要重置。这可能是重建的结果。两个文件夹中都没有存储附加组件视图的文件。
使用Assembly.LoadFrom加载加载项。
答案 0 :(得分:0)
仍然不确定这是什么原因,但我通过将带有视图的程序集的上次修改日期时间放入MVC随后用于请求视图的虚拟路径来解决问题。
我可以通过覆盖RazorViewEngine
并覆盖FindView
和FindPartialView
方法来指定MVC用来加载视图的虚拟路径。