Контекстное меню для добавления контроллера / просмотра отсутствует


я интегрировал ASP.NET MVC 4 в существующий asp.net веб-сайт. Оба работают нормально, но я не вижу меню/ярлыков для создания контроллера/представления в среде Visual studio IDE. Доступны ли они только для ASP.NET шаблон MVC?

16 55

16 ответов:

это те, которые доступны только для шаблона ASP.NET в MVC?

да, но вы могли бы обмануть. Как Visual Studio показывает эти ярлыки, глядя на тип проекта, и если он видит, что это ASP.NET проект MVC это сделает их доступными. Но откуда он знает, что это ASP.NET проект MVC? В конце концов ASP.NET MVC - это ASP.NET проект.

открыть .csproj файл и искать <ProjectTypeGuids> узел вашего ASP.NET проект MVC 4. Вы увидите что-то вроде этого:

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

теперь откройте .csproj файл вашего обычного ASP.NET проект и просто добавить {E3E379DF-F4C6-4180-9B81-6769533ABE47} GUID как первый элемент в списке (если вы не проект даже не загружается). Вот и все. Теперь вы увидите специфическое ASP.NET контекстное меню вашего проекта MVC в веб-формах.

шаг для изменения GUID

  1. Правой Кнопкой Мыши на проекте в обозревателе решений
  2. Нажмите кнопку выгрузить проект
  3. щелкните правой кнопкой мыши на проекте в обозревателе решений
  4. изменить projectfolder/имя_проекта.csproj
  5. Chagne GUID
  6. щелкните правой кнопкой мыши и выберите "перезагрузить проект"

на <ProjectTypeGuids> тег добавить любой из этих GUID в начале

{E3E379DF-F4C6-4180-9B81-6769533ABE47};

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

для людей, использующих MVC 5, Добавьте этот ключ

{E3E379DF-F4C6-4180-9B81-6769533ABE47}; 

в начале . Другие GUID не будут работать.

ничего не делайте, просто обновите свой проект MVC. Запустите эту команду в консоли диспетчера пакетов Nuget.

Обновление-Пакет Microsoft.сеть САШ.Mvc

ответ 2 был правильным просто неправильный guid

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

Это то, что вам нужно для MVC в VS2010

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

различные GUID для разных версий MVC:

ASP.NET MVC 1   {603C0E0B-DB56-11DC-BE95-000D561079B0}
ASP.NET MVC 2   {F85E285D-A4E0-4152-9332-AB1D724D3325}
ASP.NET MVC 3   {E53F8FEA-EAE0-44A6-8774-FFD645390401}
ASP.NET MVC 4   {E3E379DF-F4C6-4180-9B81-6769533ABE47}
ASP.NET MVC 5   {349C5851-65DF-11DA-9384-00065B846F21}

У меня была та же проблема при открытии проекта MVC в веб-сайте. Я снова открыл решение через Open - > Project, и эта функциональность работала так, как я ожидал.

Я знаю, что это старый пост, но я только что столкнулся с этим переключением между VS2013 и VS2012 для проекта MVC 5. Проблема в том, что версия шаблона MVC, который я использовал, не была установлена из обновления Visual Studio. VS2012 не пришел с MVC5, как это вышло после него, так что обновление было необходимо для VS2012, чтобы добавить шаблон. То же самое с VS2010 и MVC4, я полагаю.

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

вот ссылка на обновление VS2012 MVC5. Убедитесь, что вы загружаете и устанавливаете как обновление инструментов, так и плагин VS.

http://www.microsoft.com/en-us/download/details.aspx?id=41532

была такая же проблема с VS2015, помог изменить содержимое ProjectTypeGuids на:

{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}

Я нахожусь на VS2012 и попробовал ответ Димитрова (добавив конкретный GUID в файл проекта ProjectTypeGuids). Хотя это дало мне отсутствующее контекстное меню для действий контроллера, мне не хватало intellisense на моих страницах Razor.

оказывается, мне не хватало инструмента VS для версии проекта MVC, над которым я работал, и установка этого инструмента (а не редактирование файла проекта) разрешила мои проблемы.

Страница загрузки для ASP.NET и Веб-инструменты 2013.1 для Visual Studio 2012

Я нашел эту ссылку для загрузки из следующего сообщения в блоге:

объявление о выпуске ASP.NET и веб-инструменты 2013.1 для Visual Studio 2012

вы правы. Наличие этих параметров контекстного меню зависит от типа проекта/шаблона.

для более старой версии

{F85E285D-A4E0-4152-9332-AB1D724D3325}

для меня он отсутствовал там, где я ожидал его существования (в верхней части меню, которое показывает, когда вы щелкаете правой кнопкой мыши на папке просмотра и нажимаете "Добавить"), но затем я нашел его в контекстном меню под "New From Template"! Я повторно установил sharper, я думаю, это произошло из-за него (также Visual Studio 2012):

enter image description here

когда все остальное не удается (перед переустановкой VS2015) вы можете сбросить VS cache. Это сработало для меня (после ремонта - не вмешиваясь в GUIDS). Просто удалите содержимое папок, указанных в этой ссылке (занимает около 30 секунд), а затем выполните команду. Это займет еще 10 секунд. Перезапуск vs и вы увидите экраны в первый раз в против. Он работал как обаяние.

http://blogs.msdn.com/b/willy-peter_schaub/archive/2010/09/15/if-you-have-problems-with-tfs-or-visual-studio-flush-the-user-cache-or-not.aspx

эта проблема также может возникнуть, когда вы только что извлекли новую копию вашего решения из репозитория кода и пакетов NuGet, включая Microsoft.сеть САШ.Судороги еще не были загружены. Перестройка решения устраняет проблему.

VS2012 контекстное меню для добавления контроллера / вид отсутствует

в VS2012 & MVC4 попробуйте unistall Web API 5.2 в PM:

UnInstall-Package Microsoft.AspNet.WebApi