MVC以某种方式缓存运行之间的嵌入式视图

时间:2018-04-19 23:59:12

标签: asp.net-mvc razor views

我的组织正在将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加载加载项。

1 个答案:

答案 0 :(得分:0)

仍然不确定这是什么原因,但我通过将带有视图的程序集的上次修改日期时间放入MVC随后用于请求视图的虚拟路径来解决问题。

我可以通过覆盖RazorViewEngine并覆盖FindViewFindPartialView方法来指定MVC用来加载视图的虚拟路径。