Загрузить вид из папки bin? - PullRequest
0 голосов
/ 27 апреля 2009

В попытке создать несколько сайтов с одним центральным набором представлений я создал внешнюю библиотеку со своими представлениями. Они помечены как содержимое и всегда копируются.
На эту библиотеку представлений ссылаются мои веб-сайты, и поэтому при компиляции вы получаете папку «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 есть представления, любые другие предложения приветствуются.

Ответы [ 2 ]

1 голос
/ 06 ноября 2009

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

0 голосов
/ 27 апреля 2009

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...