2009-05-12 5 views
5

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

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

  • Classlibrary - это строго типизированная сборка, которая загружается в GAC.
  • Очевидно, что библиотека ссылается в проекте.
  • Я добавил < добавить пространства имен = «пространство имен»/> в web.config
  • Я перестраивался несколько раз, и перезапустить VS
  • ClassLibrary не имеет каких-либо проблем ...

Любые предложения?

+0

Любое решение? пожалуйста, уточните здесь. –

ответ

3

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

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

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

+0

Согласен, что я не должен использовать внешние классы. Однако это должно было сработать. Это классная библиотека только для чтения, которая имеет встроенные коллекции и сущности. Мне нравится ваше предложение о замене вручную, но это не работает, я получаю ошибку компиляции, вероятно, потому что наследование перепутано: «Заголовок» не является членом «ASP.views_home_list_aspx» – Ropstah

+0

Ошибка, которую я получил, не имеет отношения к мой вопрос. Ваше предложение работает. Благодаря! – Ropstah

0

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

+0

Я могу вручную ввести имя класса, в том числе пространства имен, однако раскрывающийся список содержимого будет отключен ... – Ropstah

0

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

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

+0

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

7

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

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

+0

Хотя я не уверен, что этот конкретный ответ решает вопрос как поставленный, он решает мою главным образом связанную проблему, так что спасибо! – lassombra

+0

@lassombra Вы в основном приветствуетесь! –

1

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

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^