Как использовать области с контроллерами из другой сборки?

Я начинаю новый проект ASP.NET MVC и решил поместить свои контроллеры в другую сборку. Evernighting работает нормально, но я столкнулся с проблемой: я создал новую область в моем проекте MVC под названием «Администрирование». У меня есть класс AdminController в моей отдельной сборке, который должен возвращать представления из моей области администратора, но каждый раз, когда он пытается вернуть представление, он ищет его в неправильном месте (~ / Admin / SomeView.cshtml вместо ~ / Administration /Admin/SomeView.cshtml) Как я могу указать контроллеру искать представления в нужной области?


person ItayMaoz    schedule 29.01.2011    source источник


Ответы (1)


Ознакомьтесь с этим статья. А также на вашу проблему ответили здесь.

По сути, вам нужно будет расширить MvcViewEngine, чтобы указать MVC искать ваши представления в разных путях, отличных от стандартных:

public class YourMegaViewEngine : WebFormViewEngine
{
    public YourMegaViewEngine ()
    {
        ViewLocationFormats = new string[]
        {
            "~/Views/Administration/{1}/{0}.cshtml" //I may be wrong for you case, but this is the place to puth you path
        };
    }
}
person Restuta    schedule 29.01.2011
comment
Это не моя проблема ... Контроллер (или ViewEngine ...) может найти мои представления, если они не находятся в определенной области. Предлагаемое вами решение не поможет в моем случае, но все равно спасибо :) - person ItayMaoz; 29.01.2011
comment
Почему бы и нет, вы уже смотрели первую статью? Области - это просто еще одна папка над представлениями, вы можете решить эту проблему таким же образом. - person Restuta; 29.01.2011