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

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

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

最佳答案

您可以为此使用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)

关于c# - 如何检查ASP.NET Core MVC的共享文件夹中是否存在 View ?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53869688/

10-13 03:31