#c# #asp.net #asp.net-mvc #asp.net-core #razor
Вопрос:
Я знаю, что мы можем использовать этот код, чтобы узнать, определено ли представление уже или нет:
ViewEngine.FindView(ViewContext, $"NameOfPartialView", isMainPage: false).Success
Но я использую ASP.NET Основные страницы Razor, и я смешиваю их с простыми представлениями razor.
Эта строка возвращает значение false, пока есть представление.
Моя иерархия проектов выглядит следующим образом:
- Страницы
- Галерея
- Список.cshtml
- Список.cshtml.cs
- Увеличитель.cshtml
- Список.cshtml
- Галерея
Как вы можете видеть, List.cshtml
это страница бритвы. За этим стоит код. Но Augmenter.cshtml
это простой вид бритвы, без кода.
А внутри List.cshtml
я хочу проверить, Augmenter.cshtml
существует он или нет.
Этот код не сработал для меня. Что мне делать?
Ответ №1:
Вот демонстрационная версия, которая может работать в моем проекте:
структура:
List.cshtml(вам нужно убедиться,что viewName
FindView
ввод правильный, вы можете передать ему только имя представления без .cshtml):
@using Microsoft.AspNetCore.Mvc.ViewEngines;
@inject ICompositeViewEngine Engine
@if (Engine.FindView(ViewContext, "Augmenter", isMainPage: false).Success)
{
<p>exist</p>
}