2009-04-27 5 views
0

В попытке иметь несколько сайтов с одним центральным набором представлений я создал внешнюю библиотеку с моими представлениями. Они всегда помечены как содержимое и копия.
Эта библиотека просмотров ссылается на мои веб-сайты и, таким образом, с компиляцией вы получите папку «Views» в папке с bin.
Тогда я сделал быстрый пользовательский ViewEngine так:Загрузить вид из папки bin?

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 

Что идет не так?
Кроме того, кажется странным, что папка с бинами имеет свои взгляды, любые другие предложения приветствуются.

ответ

0

Если вы абсолютно уверены, что содержимое находится в правильной папке, то это, вероятно, сервер, который не позволяет ничего обслуживать из каталога bin по очевидным соображениям безопасности.

Если это так, я предлагаю, чтобы вы сохраняли представления во внешнем проекте, а затем создавали методы расширения HTML, которые отображали эти представления.

+0

Безопасность действительно была тем, о чем я думал. Но тогда я получу ошибку безопасности, я бы предположил. Htmlhelpers не вытащит меня из этого, так как у меня нет взгляда в первую очередь ... –

+0

Что я подразумевал под предложением Htmlhelpers, так это то, что не помещайте представления в папку bin вообще, но имейте их визуализируется и возвращается из внешней библиотеки, если это возможно. –

1

Почему бы не использовать post-build action для проектов для перемещения файлов в/bin/Views в/Views? Тогда вам не нужно делать ничего особенного в коде.

Смежные вопросы