2009-10-21 9 views
13

У меня есть существующий проект WebForms, к которому я добавляю страницы MVC. Я создал проект MVC и скопировал подсказки типа проекта.«Добавить контроллер»/«Добавить вид» в гибридном приложении ASP.NET MVC/WebForms

Он отлично работает, но я не могу получить Visual Studio для отображения «Добавить контроллер» или «Добавить View» волшебников на моих контроллеров и представлений каталогов (они не /Controllers и /Views, они в /Foo/Controllers и /Foo/Views).

Можно ли включить мастеров?

+0

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

+0

@ Если вы добавите это как ответ, я бы согласился с этим - я также понял, что мне так же хорошо помогают фрагменты кода – orip

+0

Является ли Foo простым каталогом или Area? –

ответ

2

Я отказался от этого. Вместо этого у меня есть некоторые базовые фрагменты Resharper. Жаль, что это не настраивается.

+0

Можете ли вы скажите мне, какие фрагменты вы говорите здесь? Поскольку строительные леса все еще не будут работать, не так ли? –

+0

@RobertKoritnik ничего необычного, просто фрагменты, которые позволяют мне помещать имя контроллера/представления и иметь имя вида просмотра и т. Д., Основанные на моем соглашении, например. 'LoginView' ->' LoginViewModel'. – orip

+0

-1 Как может кто-то выбрать это как хороший ответ ??? – JotaBe

1

Возможно, вы можете включить их, но зачем беспокоиться? Эти мастера доступны всего в двух кликах: щелкните правой кнопкой мыши по папке, нажмите «Добавить-Новый», затем выберите «Страница просмотра MVC» или «Страница контроллера MVC». Они не в контекстном меню, но они все еще довольно близки ... :)

+1

(1) Я не мог заставить шаблоны отображаться в «Add -> New Item» в этом проекте [я не знаю почему] и (2) шаблон «MVC View Page» в разделе «Добавить -> Новый элемент» «не позволяет мне выбирать статически типизированную модель представления, как это делает мастер. – orip

+0

@orip: хотя он и выбирает настраиваемые шаблоны контроллеров (если вы помещаете их в папку «CodeTemplates»), это не очень помогает с просмотрами, особенно если вы используете эти строительные леса ... –

6

Чтобы получить полную поддержку дизайнеров для гибридных проектов, вам нужно добавить MVC «тип проекта» в файл проекта.

Откройте файл проект и заменить ProjectTypeGuids тег с

<ProjectTypeGuids>{F85E285D-A4E0-4152-9332-AB1D724D3325};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids> 

После этого вы увидите новое контекстное меню («Добавить вид», «Добавить Площадь», «Добавить контроллер», и т.д.) в вашем "старый" ASP.NET проект

работает как MVC и MVC 2.

+0

Ваш ответ помог мне, спасибо! –

+0

-1: OP уже добавил те GUID, о которых вы говорите. Его вопрос заключается в том, как поместить этих мастеров в папки, т.е. 'Foo \ Controllers' и' Foo \ Views', а не те пары, которые находятся в корне приложения ... –

11

для MVC 3, ProjectTypeGuids должен выглядеть следующим образом:

<ProjectTypeGuids>{E53F8FEA-EAE0-44A6-8774-FFD645390401};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids> 

(см Upgrading an ASP.NET MVC 2 Project to ASP.NET MVC 3)

+2

-1: @orip сообщил, что он уже изменил идентификаторы GUID. Гиды здесь не проблема. Его вопрос: ** Как заставить эти контекстные меню появляться в разных папках, а не непосредственно 'Controller' и' Views' **. –

2

Вот справ для MVC3:

{E53F8FEA-EAE0-44A6-8774-FFD645390401}; 

выгрузить ваш проект, открытый файл csproj и добавить GUID в начале тега. нет лишних пробелов или разрывов строк, а затем перезагрузите проект. Как это

<ProjectTypeGuids>{E53F8FEA-EAE0-44A6-8774-FFD645390401};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids> 
5

Для MVC 4:

<ProjectTypeGuids>{E3E379DF-F4C6-4180-9B81-6769533ABE47};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids> 
1

Эта проблема решена. У меня гибридный проект, и у меня была такая же проблема. Не удалось увидеть «Добавить View/Add Controller» в контекстном меню. Теперь он разрешен. См. Следующую ссылку: Context menu to Add Controller/View missing

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