如何知道ASP.NET Core中是否存在视图?
我正在搜索这样的伪代码:
@if (Exists("/Views/Shared/SomeView.cshtml"))
{
Html.Partial("/Views/Shared/SomeView.cshtml"))
}
答案 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)