2009-08-31 53 views
2

我將一些ASP.NET MVC頁面添加到現有的ASP.NET Web窗體項目中。將ASP.NET MVC頁面添加到Web窗體項目時,如何獲得「添加 - >查看」菜單項?

我已經能夠從我創建的MVC項目中移植一些模型,視圖和控制器,並且他們工作得很好。

但我想爲我的項目添加一些新的「強類型」視圖,但我沒有在我的Web窗體項目中獲得新視圖嚮導。

當談到定製Visual Studio時,我有點新手,所以我可能會漏掉一些明顯的東西。

回答

4

您可以對項目文件進行一些破解。在您的WebForms項目文件中(將其作爲普通文件打開),請在ProjectTypesGuid節點下添加以下guid:

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

然後添加引用System.Web.Routing,抽象和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

0

新視圖嚮導是ASP.Net MVC腳手架的一部分。您的項目需要從ASP.Net MVC項目模板創建,以獲得此功能。

由於您將它添加到舊的ASP.Net項目中,可能是使用Web應用程序或網站項目模板創建的,您必須手動完成。

0

我也看到了這一點,當你的控制器方法具有無效返回結果,而不是的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); 
    } 
1

就像約翰·福斯特說,你必須手動編輯.csproj的文件。但是,我需要一個不同的GUID和一些額外的元素(至少對於Visual Studio 2012),否則我會在添加 - >視圖之後出現錯誤對話框,其中顯示「參數不能爲空參數名稱path1」。下面是我所做的:

  1. 右擊項目 - > 「卸載項目」
  2. 右擊項目 - > 「編輯.csproj的」
  3. 加{E3E379DF,F4C6-4180-9B81-6769533ABE47 }; Project \ PropertyGroup \ ProjectTypeGuids。礦看起來像:

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

  4. 確保以下元素在項目\的PropertyGroup存在:

    <MvcBuildViews>假</MvcBuildViews >

    <FileUpgradeFlags> </FileUpgradeFlags >

    < UpgradeBackupLocation> </UpgradeBackupLocation>

    < TargetFrameworkProfile />

相關問題