我需要将部分视图呈现为字符串,因此我可以将 Razor 语法部分视图呈现到 Asp.net 视图中。该过程的一部分涉及让视图引擎找到视图:
var engine =
ViewEngines.Engines
.OfType<RazorViewEngine>()
.SingleOrDefault();
if(engine == null)throw new Exception("no razor viewengine");
//useCache is the last parameter in the invocation below
var viewResult = engine
.FindPartialView(htmlHelper.ViewContext, viewName, false);
如果我将useCache
参数设置为true
(即我不希望虚拟路径提供程序在我每次请求时都搜索它),则不再找到该视图。我原以为如果没有通过缓存找到它,我们会退回到非缓存方法。
我的期望错了吗?这与混合 ViewEngines 有关吗?
让我更困惑的是,如果我们只是要求ViewEngine.Engines
集合找到视图,我们没有得到一个useCache
参数:
var viewResult =
ViewEngines
.Engines
.FindPartialView(htmlHelper.ViewContext, viewName);
我想我会选择这个 FTTB,但它引出了一个问题……为什么会出现差异?