ASP.NET MVC - как создать строго типизированное представление из классов в указанной библиотеке классов?

Я пытаюсь создать строго типизированное представление с помощью Visual Studio 2008. Я могу щелкнуть правой кнопкой мыши действие контроллера и выбрать: Добавить представление ... В следующем диалоговом окне есть опция «Создать строго типизированное представление». Если я отмечу эту опцию, я могу выбрать список классов, которые есть в моем текущем проекте.

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

  • Библиотека классов - это строго типизированная сборка, загружаемая в GAC.
  • Очевидно, что в проекте есть ссылка на библиотеку.
  • Я добавил ‹add namespace =" namespace "/› в web.config
  • Я несколько раз перестраивал и перезапускал VS
  • У Classlibrary нет проблем ...

Какие-либо предложения?


person Ropstah    schedule 12.05.2009    source источник
comment
Любое решение? пожалуйста, обновите здесь.   -  person Satendra Jindal    schedule 20.11.2014


Ответы (5)


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

Но, по моему личному мнению, использование «внешних» классов в качестве ваших моделей очень неправильно.

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

person User    schedule 12.05.2009
comment
Я согласен с тем, что не должен использовать вне уроки. Однако это должно работать. Это доступная только для чтения библиотека классов, в которую встроены коллекции и сущности. Мне нравится ваше предложение о замене вручную, но это не сработает, я получаю ошибку компиляции, вероятно, из-за того, что наследование испорчено: «Заголовок» не является членом «ASP.views_home_list_aspx» - person Ropstah; 12.05.2009
comment
Полученная мной ошибка не связана с моим вопросом. Ваше предложение работает. Спасибо! - person Ropstah; 13.05.2009

Конечно, уже слишком поздно для ответа на этот вопрос, но для будущих читателей:

Я заметил, что очень часто мне нужно построить-> чистое решение, а затем построить-> перестроить решение, и классы волшебным образом появляются (как должны)

person Savvas Sopiadis    schedule 29.01.2010
comment
Хотя я не уверен, что этот конкретный ответ решает поставленный вопрос, он решает мою в основном связанную с этим проблему, так что спасибо! - person lassombra; 18.10.2012

Это было опубликовано давно, но мое решение может кому-то помочь ....

У меня была такая же проблема, и я обнаружил, что если бы у меня был «Контроллер» как часть имени класса - у меня был бы «DoorController» - я не мог бы добавить его через строго типизированный выбор представления. Это также вызвало у меня другие проблемы в asp mvc.

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

person Darragh    schedule 08.02.2011

Я не уверен, отображаются ли мои собственные классы в списке или нет - я обычно просто набираю их (начиная с корневого пространства имен). Что произойдет, если вы попытаетесь ввести, например, MyRootNamespace.MyClassLibrary.MyNamespace.AnotherNamespace.TheClass в текстовое поле и щелкнуть OK?

person Tomas Aschan    schedule 12.05.2009
comment
Я могу вручную ввести имя класса, включая пространства имен, однако раскрывающийся список содержимого представления отключен ... - person Ropstah; 12.05.2009

Я могу вручную ввести имя класса, включая пространства имен, однако раскрывающийся список содержимого представления будет отключен ... - ropstah 12 мая в 13:31

У меня такая же проблема с моими настраиваемыми классами данных. Они отображаются в раскрывающемся списке «Просмотр класса данных», но раскрывающийся список «Просмотр содержимого» отключен. Я предполагаю, что моим классам нужно реализовать какой-то интерфейс. Я просто не уверен, какой именно.

person Community    schedule 21.08.2009
comment
Вы можете проверить это: msdn.microsoft.com/ en-us / library / aa697427 (VS.80) .aspx. Очень хороший инструмент ORM - Entityspaces, www.entityspaces.com. - person Ropstah; 21.08.2009