#.net #asp.net #razor
#.net #asp.net #razor
Вопрос:
У меня есть пользовательский базовый класс представления, который наследуется от WebPage. Я хочу в Razor вызвать метод в этом классе, но я продолжаю получать ошибки, в которых говорится: «метод ‘X’ не существует в текущем контексте». Поскольку я по сути использую метод, как и любой другой метод (например, RenderPage), почему это не работает? Чего мне здесь не хватает?
У меня действительно зарегистрировано мое представление, потому что я использую другие его методы в @functions
блоке…
<system.web.webPages.razor>
<pages pageBaseType="Nucleo.Web.Views.BaseViewWebPage" />
</system.web.webPages.razor>
Комментарии:
1. Вы получаете эту ошибку в VS designer или во время выполнения?
2. Представления не компилируются. Что произойдет, если вы нажмете F5?
3. Начата сборка> Ошибка сборки «Ошибка 1 Имя ‘RenderViewPage’ не существует в текущем контексте C:..Parent.cshtml 20 7 C:… »
4. Используете ли вы цель MSBuild для файлов CSHTML?
5. @Slaks Это обычный ASP.NET Веб-сайт Razor без специальной сборки, кроме указания моего пользовательского базового типа страницы, как указано выше. Все хорошо работает с моей реализацией; он отлично строится, и я могу вызвать любой из моих базовых методов просмотра в блоке functions { } веб-страницы Razor (другие методы вызываются там нормально), но не внутри представления в качестве вызова RenderViewPage…
Ответ №1:
Я не знаю почему, но DLL никогда не обновлялась, и именно поэтому я получал сообщение об ошибке. Когда я удалил его и перестроил, он работает нормально.
Ответ №2:
Судя по ошибке, похоже, что вы пытаетесь вызвать RenderViewPage() , но на веб-странице такого метода нет. Я предполагаю, что вместо этого вы хотите вызвать RenderPage() , что должно сработать.