在ASP.NET Core MVC中显示当前视图的替代搜索路径



出于调试目的,我想知道可以使用的其他视图路径,而不是最终呈现的剃须刀视图。通常,这并不难猜测,但是我使用的是可以动态变化的搜索路径的自定义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>

最新更新