В попытке создать несколько сайтов с одним центральным набором представлений я создал внешнюю библиотеку со своими представлениями. Они помечены как содержимое и всегда копируются.
На эту библиотеку представлений ссылаются мои веб-сайты, и поэтому при компиляции вы получаете папку «Views» в папке bin.
Затем я сделал быстрый пользовательский ViewEngine, как это:
public class CommonViewLocator: WebFormViewEngine
{
public CommonViewLocator()
{
MasterLocationFormats = new[] {
"~/bin/Views/{1}/{0}.master",
"~/bin/Views/Shared/{0}.master"
};
ViewLocationFormats = new[] {
"~/bin/Views/{1}/{0}.aspx",
"~/bin/Views/{1}/{0}.ascx",
"~/bin/Views/Shared/{0}.aspx",
"~/bin/Views/Shared/{0}.ascx"
};
PartialViewLocationFormats = ViewLocationFormats;
}
}
После запуска я получаю этот экран:
The view 'Index' or its master could not be found. The following locations were searched:
~/Views/Home/Index.aspx
~/Views/Home/Index.ascx
~/Views/Shared/Index.aspx
~/Views/Shared/Index.ascx
~/bin/Views/Home/Index.aspx
~/bin/Views/Home/Index.ascx
~/bin/Views/Shared/Index.aspx
~/bin/Views/Shared/Index.ascx
Что не так?
Кроме того, кажется странным, что в папке bin есть представления, любые другие предложения приветствуются.