代码之家  ›  专栏  ›  技术社区  ›  Frank Schmitt

将ASP.NET MVC页面添加到Web窗体项目时,如何获取“添加->查看”菜单项?

  •  2
  • Frank Schmitt  · 技术社区  · 16 年前

    我正在将一些ASP.NET MVC页面添加到现有的ASP.NET Web表单项目中。

    但是我想在我的项目中添加一些新的“强类型”视图,但是我的Web窗体项目中没有“新建视图向导”。

    在定制VisualStudio方面,我有点新手,所以我可能遗漏了一些明显的东西。

    5 回复  |  直到 16 年前
        2
  •  1
  •   Frank Schmitt    16 年前

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

    它涉及手动编辑.csproj文件,并将guid添加到项目类型列表中。

        3
  •  1
  •   Lee Richardson    14 年前

    正如John Foster所说,您必须手动编辑.csproj文件。但是,我需要一个不同的guid和一些额外的元素(至少对于Visual Studio 2012),否则在添加->表示“参数不能为null。参数名称路径1”的视图。以下是我所做的:

    1. 右键单击项目->“卸载项目”
    2. 右键单击项目->“编辑.csproj”
    3. 添加{E3E379DF-F4C6-4180-9B81-6769533ABE47};到Project\PropertyGroup\ProjectTypeGuids。我的看起来像:

      <

    4. <MvcBuildViews>假</MvcBuildViews>

      <FileUpgradeFlags></FileUpgradeFlags>

      <UpgradeBackupLocation></UpgradeBackupLocation>

      <

        4
  •  0
  •   womp    16 年前

    “新建视图向导”是ASP.NETMVC框架的一部分。您的项目需要从ASP.NETMVC项目模板中创建,才能获得此功能。

    由于您要将其添加到旧的ASP.Net项目中,该项目可能是使用web应用程序或网站项目模板创建的,因此您必须手动完成。

        5
  •  0
  •   Craig    16 年前

    当您的控制器方法的返回结果为时,我也看到了这种情况 而不是

       //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);
       }