Подтвердить что ты не робот

Добавить класс модели контроллера не показан

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

Странно, теперь мой VS не показывает ЛЮБОЙ из моих классов в списке выбора модели в "Add Controller". Более или менее здесь показано все внешнее - кроме моего собственного stuf. Да - я скомпилировал код, код компилируется без ошибок и перезапускает VS несколько раз. Не знаю, что происходит.

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

Мануальная настройка класса не работает. Добавить всегда будет жаловаться, я должен выбрать из списка.

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

Структура: MVC4, VS2010, EF4.3.1

4b9b3361

Ответ 1

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

Ответ 2

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

Ответ 3

"Добавить контроллер" Классы моделей, не показанные для лесов

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

Решение 1. Если имя решения SAME как имя проекта, просто очистите решение, постройте решение. Он будет работать.

Решение 2. Если имя проекта отличается от имени проекта, выполните следующие шаги:

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

namespace SolutionName.ProjectName.Models
{ ...}

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

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

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

(iii) Создание решения

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

Ответ 4

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

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

Ответ 5

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

Ответ 6

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

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

Ответ 7

С той же проблемой возникла проблема с EF-моделью в отдельном проекте.

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

Ответ 9

Создайте новый веб-сайт MVC. Добавьте существующие (ваши классы моделей) - убедитесь, что они работают, затем начните разграничивать два проекта.

Ответ 10

Я только что испытал эту проблему в проекте, который работал. НЕТ обновлений для EF или MVC, он просто начал метать сообщение "Нет моделей...". Я поддержал свой проект, удалил его из своего HD и получил в этом случае самую последнюю версию из источника управления SVN. Я перестроил проект, и теперь он снова работает, как и магия.

VS 2012 EF 5.0 .NET 4.5 MVC 4.0

Ответ 11

Строительство/перестройка не помогли мне. Мне пришлось закрыть и снова открыть решение, а затем класс наконец появился.

Ответ 12

У меня была такая же проблема с одной конкретной моделью. Я использовал .Net Core 2.x с EF Core. Оказалось, это потому, что он наследовал класс, который в свою очередь наследовал Microsoft.AspNetCore.Identity.IdentityUser. EF Core не даст мне помост от этой модели. Я удалил наследование IdentityUser из базового класса, и модель появилась в раскрывающемся списке нового контроллера EF.

Ответ 13

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

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

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

Ответ 14

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

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

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