添加控制器/视图缺失的上下文菜单

时间:2012-05-10 18:34:48

标签: asp.net asp.net-mvc visual-studio visual-studio-2010 asp.net-mvc-4

我已将ASP.NET MVC 4集成到现有的asp.net网站中。两者都工作正常,但我没有看到任何菜单/快捷方式在visual studio IDE中创建控制器/视图。那些只适用于ASP.NET MVC模板吗?

18 个答案:

答案 0 :(得分:111)

  

那些只适用于ASP.NET MVC模板吗?

是的,但你可以作弊。 Visual Studio显示这些快捷方式的方式是查看项目类型,如果它看到它是一个ASP.NET MVC项目,它将使它们可用。但它如何知道它是一个ASP.NET MVC项目?毕竟ASP.NET MVC是一个ASP.NET项目。

打开.csproj文件,查找ASP.NET MVC 4项目的<ProjectTypeGuids>节点。你会看到这样的东西:

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

现在打开常规ASP.NET项目的.csproj文件,只需将{E3E379DF-F4C6-4180-9B81-6769533ABE47} GUID添加为列表中的第一项(如果您没有项目甚至不加载)。就这样。现在,您将在WebForms项目中看到ASP.NET MVC特定的上下文菜单。

答案 1 :(得分:32)

步骤更改GUID

  1. 右键单击解决方案资源管理器中的项目
  2. 点击卸载项目
  3. 再次右键单击解决方案资源管理器中的项目
  4. 编辑projectfolder / projectname.csproj
  5. Chagne GUID
  6. 右键单击并选择“重新加载项目”
  7. <ProjectTypeGuids>标记中,在开头

    中添加任何这些GUID
    {E3E379DF-F4C6-4180-9B81-6769533ABE47};
    
    {E53F8FEA-EAE0-44A6-8774-FFD645390401};
    

答案 2 :(得分:8)

对于使用MVC 5的用户,请添加此密钥

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

在开头。其他指南不起作用。

答案 3 :(得分:6)

不做任何事只是更新您的MVC项目。在Nuget Package Manager控制台中触发此命令。

  

更新 - 打包Microsoft.AspNet.Mvc

答案 4 :(得分:3)

答案2是正确的只是错误的指导

  

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

是VS2010中MVC所需要的

答案 5 :(得分:2)

右键单击解决方案资源管理器中的项目,您需要卸载项目,编辑项目,使用下面的图表更改标记,然后重新加载项目。 将相应的GUID粘贴到csproj文件中列表的前面。

不同版本的MVC的不同GUID:

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}

答案 6 :(得分:1)

对我而言,它在我预期存在的地方丢失了(在菜单顶部显示右键单击视图文件夹并单击“添加”时),但后来我找到了它在“来自模板的新内容”下的子上下文菜单中!我已经重新安装了,我想这是因为它(也是Visual Studio 2012):

enter image description here

答案 7 :(得分:1)

我在VS2012上尝试了Dimitrov的答案(在项目文件的ProjectTypeGuids中添加了特定的GUID)。虽然这确实给了我控制器动作缺少的上下文菜单,但我在Razor页面上缺少intellisense。

事实证明我错过了我正在处理的MVC项目版本的VS工具,并且安装此工具(而不是编辑项目文件)解决了我的问题。

Download page for ASP.NET and Web Tools 2013.1 for Visual Studio 2012

我在以下博文中找到了这个下载链接:

Announcing release of ASP.NET and Web Tools 2013.1 for Visual Studio 2012

答案 8 :(得分:1)

VS2015 有同样的问题,帮助将ProjectTypeGuids内容更改为:

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

答案 9 :(得分:1)

我知道这是一个老帖子,但我刚刚在VS2013和VS2012之间进行了一次MVC 5项目的切换。我遇到的问题是我使用的MVC模板的版本没有从Visual Studio更新中安装。 VS2012没有随附MVC5,因此VS2012需要更新才能添加模板。与我想象的VS2010和MVC4一样。

无论如何,从Microsoft下载更新解决了我的问题,因为当另一个版本打开并保存项目时,它会在使用上述修复时再次消失。

这是VS2012 MVC5更新的链接。确保下载并安装Tools更新和VS插件。

http://www.microsoft.com/en-us/download/details.aspx?id=41532

答案 10 :(得分:1)

当打开MVC项目作为网站时,我遇到了同样的问题。我通过Open重新打开了解决方案 - &gt;项目和此功能按预期工作。

答案 11 :(得分:0)

你是对的。这些上下文菜单选项的存在是项目类型/模板特定的。

答案 12 :(得分:0)

旧版

{F85E285D-A4E0-4152-9332-AB1D724D3325}

答案 13 :(得分:0)

当其他所有方法都失败时(重新安装VS2015之前),您可能需要重置VS缓存。这对我有用(修复后 - 不干涉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

答案 14 :(得分:0)

当您从代码存储库中检出解决方案的新副本并且尚未下载NuGet包(包括Microsoft.AspNet.Mvc)时,也会发生此问题。重建解决方案可以解决问题。

答案 15 :(得分:0)

以下是VS 2017对我有用的东西。

首先检查您是否能够创建一个新的空MVC项目。

如果没有-这意味着缺少某些组件。启动Visual Studio安装程序(typicall位于C:\Program Files (x86)\Microsoft Visual Studio\Installer\vs_installer.exe中,但是您只需点击“开始”并开始输入“ Visual Studio安装程序”)

单击“修改”,然后在选中所有现有组件的情况下重新运行它。

只需确保选中“ ASP.NET Web开发”。

答案 16 :(得分:0)

您可能已将项目作为文件夹类型打开,这限制了 Visual Studio IDE 限制某些 GUID 选项,因此请加载您的项目解决方案。

它应该可以工作。右键单击 ActionResult 或内部控制器后,添加视图或添加控制器应该可用。

答案 17 :(得分:-2)

VS2012上下文菜单添加控制器/查看缺失

在VS2012&amp; MVC4在PM中尝试unistall Web API 5.2:

UnInstall-Package Microsoft.AspNet.WebApi