Я устанавливаю свой сайт MVC 5 по категориям, затем контроллер, модель, просмотр подпапок в каждой категории, т. Е. Папки корневых папок \ Home и \ Products будут иметь эти три подпапки , а также папку root \ Shared \ Views. Я следовал потрясающей статье моего Мэтью Ренца, Clean Architecture in ASP.NET MVC 5. Совершено в части создания пользовательского RazorViewEngine, а именно:ASP.NET MVC 5 настраиваемый RazorViewEngine для множественной структуры портала
public CustomRazorViewEngine()
{
ViewLocationFormats = new string[]
{
"~/{1}/Views/{0}.cshtml",
};
PartialViewLocationFormats = new string[]
{
"~/Shared/Views/{0}.cshtml"
};
}
Там не много изменений за пределами этого. Мне было интересно, смогу ли я использовать эту идею и настроить проект веб-сайта с корневой папкой \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ и \ \ \ Изменения пользовательского вида бритвы код двигателя могут выглядеть как некоторые:
public CustomRazorViewEngine()
{
ViewLocationFormats = new string[]
{
"~/Portals/{2}/{1}/Views/{0}.cshtml",
};
PartialViewLocationFormats = new string[]
{
"~/Portals/{2}/Shared/Views/{0}.cshtml"
};
}
Я не уверен, где значения {0} и {1} пришли, однако. Я мог найти средство для получения {2}, названия сайта портала. Относительные пути для остальной части сайта, такие как \ Content, \ Scripts и т. Д. Я считаю, что смогу структурировать себя.
Целью этого подхода является предоставление клиенту решения, в котором общий код может использоваться повторно для поддержки нескольких порталов с уникальными скинами и функциями. Спасибо за ваше время и внимание и дайте мне знать, если у вас есть вопросы.
Джон
Спасибо Рона! Я думал, что у Core будет нечто помимо Областей. Мне нужно будет прочитать о Райах, как это было давно. В этом соглашении над конфигурацией, возможно, Области означают больше, чем какое-либо произвольное слово, то есть Порталы. Я хотел бы оставить это открытым, чтобы убедиться, что другие сделали это без учета областей, а не с View («somepathtotheview.cshtml», моделью) и т. Д. –
Na, они в значительной степени просто выдвинули концепцию Района. Но ядро Asp.Net супер настраивается, поэтому вы действительно можете структурировать свой проект так, как хотите, если вы решите реализовать новые соглашения для своего проекта. –