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

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

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

4b9b3361

Ответ 1

Доступны ли только шаблоны ASP.NET MVC?

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

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

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

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

Ответ 2

Шаг по изменению GUID

  • Щелкните правой кнопкой мыши по проекту в обозревателе решений
  • Нажмите выгрузить проект
  • Щелкните правой кнопкой мыши по проекту в обозревателе решений
  • Изменить файл проекта /projectname.csproj
  • GUID GUID
  • Щелкните правой кнопкой мыши и выберите "Обновить проект"

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

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

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

Ответ 3

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

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

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

Ответ 4

Ответ 2 был правильным, неверным директором

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

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

Ответ 5

Ничего не обновляйте свой проект MVC. Выполните пожар этой команды в консоли Nuget Package Manager.

Обновление пакета Microsoft.AspNet.Mvc

Ответ 6

При щелчке правой кнопкой мыши по проекту в обозревателе решений вам необходимо выгрузить проект, отредактировать проект, изменить тег, используя приведенную ниже таблицу, а затем перезагрузить проект. Вставьте соответствующий 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}

Ответ 7

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

Ответ 8

Я знаю, что это старый пост, но я просто столкнулся с этим переключением между 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

Ответ 9

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

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

Ответ 10

Вы правы. Присутствие этих параметров контекстного меню имеет тип проекта/шаблон.

Ответ 11

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

{F85E285D-A4E0-4152-9332-AB1D724D3325}

Ответ 12

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

enter image description here

Ответ 13

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

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

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

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

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

Ответ 14

Если все остальное не удается (перед повторной установкой VS2015), вы можете захотеть reset VS cache. Это сработало для меня (после ремонта - НЕ вмешиваться в GUIDS). Просто удалите содержимое в папках, указанных в этой ссылке (занимает около 30 секунд), а затем выполните команду. Это занимает еще 10 секунд. Перезапустите VS, и вы увидите экраны первого пользователя в 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

Ответ 15

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

Ответ 16

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

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

UnInstall-Package Microsoft.AspNet.WebApi