在调查慢视图渲染的过程中,我正在查看“视图”选项卡,并试图找出哪些用户控件被缓存以及哪些用户控件没有缓存。
通常第一个条目显示如下:
| Path | Check Cache | Found | Details | |--------------------------|-------------|--------|--------------------| |~/Path/To/UserControl.ascx| true | false | Not found in cache | |~/Path/To/UserControl.ascx| false | true | key | value |
所有用户控件都以相同的方式显示,无论任何缓存指令如何:
OutputCache Duration="3600" VaryByParam="none" Shared="True"
瞥了一眼还是我搞砸了输出缓存指令?
答案 0 :(得分:5)
Glimpse中的“Check Cache”列与视图引擎的缓存有关 - 而不是输出缓存。
例如,给定(不太详细)输出:
Ordinal | Requested View | View Engine | Check Cache | Found
--------|----------------|-------------|-------------|------
1 | Index | WebForms | true | false
2 | Index | Razor | true | false
3 | Index | WebForms | false | false
4 | Index | Razor | false | **true**
MVC正在做什么,而Glimpse试图展示的是:
Index
的视图 - 但它无法找到该视图(这就是为什么“Found”为false
) Index
的视图 - 但它也无法找到该视图。Index
的视图,而不是缓存。对于WebForms,这意味着在磁盘上查找*.aspx
文件 - 但找不到该视图。Glimpse网站上还有一些information about the view tab。
我希望这有帮助!
注意:当ASP.NET处于调试模式时,WebForms和Razor从不缓存其视图。