Я включил ASP.NET MVC 4 в существующий веб-сайт asp.net. Оба прекрасно работают, но я не вижу никаких меню/ярлыков для создания контроллера/просмотра в среде визуальной студии IDE. Доступны ли только шаблоны ASP.NET MVC?
Контекстное меню для добавления контроллера/просмотра отсутствует
Ответ 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):
Ответ 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. Он работал как шарм.
Ответ 15
Эта проблема также может возникнуть, если вы только что проверили новую копию своего решения из своего репозитория кода, а пакеты NuGet, включая Microsoft.AspNet.Mvc, еще не загружены. Восстановление решения устраняет проблему.
Ответ 16
VS2012 Контекстное меню для добавления контроллера/просмотра отсутствует
В VS2012 и MVC4 попробуйте unistall Web API 5.2 в PM:
UnInstall-Package Microsoft.AspNet.WebApi