Для этого вы можете использовать FindView .Внутри представления вы можете использовать внедрение зависимостей, чтобы получить экземпляр ICompositeViewEngine
, который зарегистрирован для вас при добавлении сервисов MVC.Используя этот экземпляр, можно определить, существует ли представление, используя что-то вроде следующего:
@inject ICompositeViewEngine Engine
@if (Engine.FindView(ViewContext, "SomeView", isMainPage: false).Success)
{
@Html.Partial("SomeView");
}
Если вы специально хотите проверить, существует ли представление в специфическом папку (например, Shared в вашем примере), вы можете использовать GetView
:
@if (Engine.GetView(null, "Views/Shared/SomeView.cshtml", isMainPage: false).Success)