Добавление классов модели контроллера не показано - PullRequest
12 голосов
/ 18 марта 2012

Мне удалось создать модель DBContext Model First (до того, как она стала обычной производной моделью ObjectContext).

Как ни странно, теперь моя VS не показывает ЛЮБЫЕ из моих классов в списке выбора модели в "Добавить контроллер".Здесь показано более или менее все внешнее, кроме моего собственного материала.Да - я скомпилировал код, код компилируется без ошибок и перезагружал VS несколько раз.Понятия не имею, что, черт возьми, происходит.

То же самое в селекторе класса контекста данных.

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

Где VS получает данные для заполнения списка?

Framework: MVC4, VS2010, EF4.3.1

Ответы [ 14 ]

12 голосов
/ 23 ноября 2012

Была такая же проблема.Обнаружено, что просто создание проекта не решает проблему отсутствующих классов Model.Однако восстановление проекта решило его сразу.

3 голосов
/ 11 июля 2015

Классы «Добавить контроллер» Классы не показаны для строительных лесов

Используемая среда: ASP.NET MVC5 с использованием C # Visual Studio 2013

Решение 1: Если имя решения такое же, как имя проекта, простоЧистое решение, Build Solution.Это будет работать.

Решение 2: Если имя решения ОТЛИЧАЕТСЯ от имени проекта, проверьте следующие шаги:

(i) Проверьте пространство имен класса (ей) модели как

namespace SolutionName.ProjectName.Models
{ ...}

предположим, что имя решения - "WGT", а имя проекта - "MS", тогда класс моделей скажет, что пользователь должен быть

namespace WGT.MS.Models
{ public class User{...}}

(ii) После этого, ясное решение.

(iii) Построить решение

Это обязательно сработает.Нашел это решение, потратив много времени.Это практичное и реализованное решение.

3 голосов
/ 22 июня 2012

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

2 голосов
/ 28 ноября 2013

Была такая же проблема. Я исправил это.

  • Разделите EF в другом проекте библиотеки классов.
  • добавить ссылку в основной веб-проект.
  • добавить строку подключения в файл конфигурации веб-проекта.
1 голос
/ 08 апреля 2016

У меня такая же проблема, проверьте пакет (asp.net mvc, & EF) совместимость, обновите все пакеты nuget. очистить и восстановить проект. Это работает для меня.

http://forums.asp.net/t/1791616.aspx?Can+t+create+new+controller+No+model+classes+are+available+

1 голос
/ 28 сентября 2013

Для начала была та же проблема с моделью EF в отдельном проекте.

Перестройка всего ничего не делала, но простая перезагрузка в новый экземпляр Visual Studio исправила это.

1 голос
/ 17 апреля 2013

Возможно связано: В раскрывающемся списке Добавить модель класса не отображается мой класс

Я искал решение этой проблемы при добавлении контроллера, но достиг упомянутого поста раньше, чем достиг этого,Удаление AssemblyInfo.cs и установка свойств проекта работали для меня (для VS2010).

1 голос
/ 19 марта 2012

Наконец-то мне удалось снова заставить работать леса.Я реорганизовал свой model.edmx из основного проекта.Материал шаблонов теперь будет генерировать классы моделей в этом новом модельном проекте.После добавления проекта модели в основной проект классы снова отображаются в окне выбора модели контроллера.Как ни странно, работать в совершенно новом решении по настройке без разделения ...

0 голосов
/ 18 мая 2019

У меня была похожая проблема, несмотря на то, что я включил

using ProjectName.Models; 

в начало файла моего контроллера.Строительство / Восстановление не работает для меня.Также не закрытие всех экземпляров Visual Studio и повторное открытие проекта.

Я подумал, что проблема может быть в том, что мы используем TFS (Team Foundation Server от Microsoft).У меня была проблема, потому что я сначала создал модель, а затем создал свой контроллер в папке представлений, прежде чем переместить этот контроллер (файл) в папку контроллеров.

Мое решение состояло в том, чтобы создать мою модель, скопировать код контроллера в другое место, удалить контроллер, перестроить / собрать решение.Затем я создал новый контроллер, скопировал правильный код обратно, и, эй presto, он распознал класс модели.

0 голосов
/ 16 мая 2019

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

Например: Проект A, проект B, Проект C Проект B имеет ссылку на C, поэтому в repos / b / bin / debug вы имеетеb.dll и c.dll Project A нужны оба, поэтому вы указываете ссылку на B.dll и C.dll в папке b / bin / debug - вы не можете видеть модели из c.dll, но вы можете увидеть b.dll модели

исправление / обходной путь: ссылки на репозитории / b / bin / debug / b.dll и репозитории / c / bin / debug / c.dll напрямую

...