Я хотел бы создать проект ASP.NET Core 2.2 с использованием Razor Pages.
Моя цель - создать проект, содержащий две категории Razor Page:
- Standardкатегория: эта категория содержит все страницы бритвы, которые будут использоваться несколькими проектами
- Пользовательская категория: эта категория содержит все страницы бритвы, относящиеся к проекту.
Довсе хорошо, я создаю две подпапки внутри каталога "Страницы": Стандартная папка, Пользовательская папка.Я заполняю стандартные и пользовательские папки всеми страницами бритвы, которые мне нужны в каждом проекте, где все страницы бритвы, содержащиеся в стандартной папкеz, одинаковы во всем моем проекте.
Например
Проект A:
Проект B:
Проект C:
Здесь возникла моя проблема: я бы реализовал в каждом проекте возможность расширить стандартную страницу бритвы, возможно, переписать некоторую конечную точку (например, я хочу изменить поведение метода "onGet") или создатьновый (например, «onGetMyCustomGet»).
Я знаю, что самое простое решение - это изменить код внутри стандартной страницы бритвы, но я хочу избежать этого, потому что стандартные страницы можно заменить новыми версиями.Таким образом, стандартные страницы должны быть независимыми от проекта и открытыми для расширения.
Моя идея состоит в том, чтобы создать "поддельную" страницу Razor внутри категории "/ Custom", которая расширяет стандартную бритву PageModel и переопределяет все методы, которые мне нужно переопределить.
Проблема: как я могу вернуть стандартную страницу бритвы cshtml вместо fakeRazorPage cshtml?Возможно ли это?
Здесь вы найдете пример проекта https://github.com/Blackleones/RazorPageResearch Если вы хотите сотрудничать, не стесняйтесь отправлять запрос на извлечение ответа.
Если не существует решений, принимаются другие идеи.1119 *