如何检查ASP.NET Core MVC的共享文件夹中是否存在视图?

时间:2018-12-20 13:28:12

标签: c# asp.net-core

如何知道ASP.NET Core中是否存在视图?

我正在搜索这样的伪代码:

@if (Exists("/Views/Shared/SomeView.cshtml"))
{
    Html.Partial("/Views/Shared/SomeView.cshtml"))
}

1 个答案:

答案 0 :(得分:5)

您可以使用FindView。在视图内部,可以使用依赖项注入获取ICompositeViewEngine的实例,该实例在添加MVC服务时已为您注册。使用此实例,可以使用以下类似方法确定视图是否存在:

@inject ICompositeViewEngine Engine

@if (Engine.FindView(ViewContext, "SomeView", isMainPage: false).Success)
{
    @Html.Partial("SomeView");
}

如果您特别想查看视图是否在特定于 文件夹中(例如,在您的示例中为共享文件夹),则可以使用GetView

@if (Engine.GetView(null, "Views/Shared/SomeView.cshtml", isMainPage: false).Success)