Как получить пункт меню «Добавить -> Просмотр» при добавлении страниц ASP.NET MVC в проект веб-форм? - PullRequest
2 голосов
/ 01 сентября 2009

Я добавляю несколько страниц ASP.NET MVC в существующий проект веб-форм ASP.NET.

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

Но я бы хотел добавить несколько новых «строго типизированных» представлений в мой проект, но в моем проекте Web Forms я не вижу мастера новых представлений.

Я немного новичок в настройке Visual Studio, поэтому я могу упустить что-то очевидное.

Ответы [ 5 ]

4 голосов
/ 01 сентября 2009

Существует некоторая хитрость, которую вы можете сделать с файлами проекта.В вашем файле проекта WebForms (откройте его как обычный файл) добавьте следующий guid под узлом ProjectTypesGuid

{603c0e0b-db56-11dc-be95-000d561079b0};

Затем добавьте ссылки на систему.Web.Routing, Abstractions и MVC, и вы должны быть хорошими, чтобы идти ...

По сути, это обратная процедура ...

http://weblogs.asp.net/leftslipper/archive/2009/01/20/opening-an-asp-net-mvc-project-without-having-asp-net-mvc-installed-the-project-type-is-not-supported-by-this-installation.aspx

1 голос
/ 11 июня 2012

Точно так же, как сказал Джон Фостер, вам нужно отредактировать файл .csproj вручную. Однако мне потребовался другой guid и некоторые дополнительные элементы (по крайней мере, для Visual Studio 2012), в противном случае после добавления Add> View я получил сообщение об ошибке, в котором говорилось: «Параметр не может быть нулевым. Вот что я сделал:

  1. Щелкните правой кнопкой мыши проект -> «Разгрузить проект»
  2. Щелкните правой кнопкой мыши проект -> "Изменить .csproj"
  3. Добавить {E3E379DF-F4C6-4180-9B81-6769533ABE47}; в Project \ PropertyGroup \ ProjectTypeGuids. Моя выглядит так:

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

  4. Убедитесь, что в Project \ PropertyGroup существуют следующие элементы:

    ложь

1 голос
/ 01 сентября 2009

Я только что нашел ответ в блоге CodeProject:

http://www.codeproject.com/KB/aspnet/webformmvcharmony.aspx?msg=3161863#heading0009

Включает ручное редактирование файла .csproj и добавление guid в список типов проектов.

0 голосов
/ 23 марта 2010

Я также видел, как это происходит, когда ваш метод контроллера возвращает результат void вместо ActionResult

   //Right click and the context menu will NOT show "Add View"
   public void Details(int id)
   {
      Dinner dinner = dinnerRepository.GetDinner(id);
      if (dinner == null)
         return View("NotFound");
      else
         return View("Details", dinner);
   }

   //Right click and the context menu will show "Add View"
   public ActionResult Details(int id)
   {
      Dinner dinner = dinnerRepository.GetDinner(id);
      if (dinner == null)
         return View("NotFound");
      else
         return View("Details", dinner);
   }
0 голосов
/ 01 сентября 2009

Новый мастер View является частью леса ASP.Net MVC. Ваш проект должен быть создан из шаблона проекта ASP.Net MVC, чтобы получить эту функциональность.

Поскольку вы добавляете его в старый проект ASP.Net, возможно, созданный с помощью веб-приложения или шаблона проекта веб-сайта, вам придется обойтись вручную.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...