Каждый раз, когда мы создаем новый проект ASP.NET MVC 3/4/5, он следует предопределенному соглашению о каталогах и добавляет несколько файлов и каталогов в проект.Однако не обязательно следовать этой структуре каталогов по умолчанию, но это помогает нам поддерживать приложение в чистоте и удобстве обслуживания путем группировки компонента приложения на основе функциональных возможностей, таких как контроллер, модель, представление и т. Д. Но когда речь идет о большом проекте, желательно разделитьразные компоненты в разных проектах библиотеки.то есть все классы моделей идут в отдельный библиотечный проект, все контроллеры идут в другой библиотечный проект и так далее.
Чтобы разделить модель и представление контроллера, выполните следующие действия:
Прежде всего возьмите пустое веб-приложение MVC 3/4/5 с именем SeparatingControllerModelsView ,Затем добавьте контроллер и назовите его HomeController .Теперь добавьте класс модели и назовите его TestModel . Добавить представление , щелкнув правой кнопкой мыши метод Index и выбрать TestModel, чтобы создать представление строго типа.
Теперь для , разделяющих модули и контроллеры addдва библиотечных проекта и названных им ModelLibrary & ControllerLibrary .Удалите класс по умолчанию из обоих проектов библиотеки.Щелкните правой кнопкой мыши проект ModelLibrary и выберите Свойства.Свойства проекта откроются и изменят пространство имен по умолчанию с пространством имен (SeparatingControllerModelsView.Models) при создании класса модели TestModel. Теперь щелкните правой кнопкой мыши по проекту ModelLibrary и выберите добавить существующий элемент и добавьте класс TestModel из веб-приложения SeparatingControllerModelsView .
Таким же образом также измените пространство имен библиотеки контроллера с пространством имен из HomeController класса.Теперь добавьте ссылку System.Web, System.Web.Mvc .Добавьте класс HomeController из SeparatingControllerModelsView веб-приложения, щелкнув правой кнопкой мыши элемент ControllerLibrary и затем добавьте существующий элемент.
Теперь Удалите каталог Controllers and Models из SeparatingControllerModelsView .Добавьте ссылку на два проекта библиотеки и запустите проект, он работает как проект MVC по умолчанию.
Если в проект добавлена какая-либо область, необходимо добавить другой проект библиотеки в соответствии с областью.Измените пространство имен библиотеки по умолчанию (и контроллер, и модель), соответственно пространство имен контроллера и моделей области.
Поскольку пространства имен совпадают с отдельной библиотекой, поэтому во время выполнения с использованием пространства имен они взаимодействуют сдруг друга легко.
также можно использовать следующую ссылку
Создание приложения ASP.NET MVC Areas областей с использованием нескольких проектов
Окончательный проект будет выглядеть так ...
