В новом веб-проекте Core Aspnet, использующем страницы Razor, я скопировал шаблоны строительных лесов в проект, готовый их изменить, и выполнил следующую команду для выполнения строительных лесов Razorpage:
dotnet aspnet-codegenerator razorpage -p MyProject.Web -m MyEntity -dc MyDbContext -udl -outDir Areas\MyArea\Pages\MyEntities --referenceScriptLibraries --force --no-build
Чтобы создать свои шаблоныБолее умно, я пытался ссылаться на некоторый код, который я написал в классе в проекте.Однако я просто получаю следующую ошибку при запуске шаблонов:
ошибка CS0234: Тип или имя пространства имен «Web» не существует в пространстве имен «MyProject» (у вас отсутствует ссылка на сборку?)
Что наводит меня на мысль, что среда / AppDomain, выполняющий шаблонизацию, не загружают этот проект.Однако это должно быть сделано, потому что он знает о DbContext.Я доказал это, добавив это в шаблон, когда он работал правильно:
<ul>
@{
foreach (var an in AppDomain.CurrentDomain.GetAssemblies())
{
<li>@an.FullName</li>
}
@Coin.Web.Templates.SiteMap.GetStringValue()
}
</ul>
Этот фрагмент кода отобразил все сборки в виде, и там был MyProject.Web
.
Это даже поддерживаемая вещь?Я бы хотел избежать дублирования некоторых из этих «умных» фрагментов кода в реальных файлах шаблонов, если я могу помочь.