出于调试目的,我想知道可以使用的其他视图路径,而不是最终呈现的剃须刀视图。通常,这并不难猜测,但是我使用的是可以动态变化的搜索路径的自定义IViewLocationExpander
。是否可以在ASP.NET核心MVC中获取这些信息,以进行任何视图渲染尝试?
与此问题类似,显示视图的当前搜索路径,但对于ASP.NET核心。
我的特定情况是对Html.EditorFor(m => m.UserRole)
的调用,最终呈现我的editortemplates/object.cshtml文件,而不是我在非标准位置中的 IViewLocationExpander
应该浮出水面。显然,我已经将我的userrole.cshtml放在我认为应该搜索但不是的位置。
以下内容近似于Html.EditorFor
在幕后做的事情,并且为我当前的情况有效,但是我希望别人可以为此问题提供一般的解决方案。
@inject Microsoft.AspNetCore.Mvc.ViewEngines.ICompositeViewEngine ViewEngine
<pre>@string.Join("n", ViewEngine
.FindView(ViewContext, "EditorTemplates/" +
(ViewData.ModelMetadata.TemplateHint ?? ViewData.ModelMetadata.DataTypeName ?? ViewData.ModelMetadata.ModelType.Name), isMainPage: false)
.SearchedLocations)</pre>