57

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

4

18 回答 18

116

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

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

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

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

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

于 2012-05-11T06:08:18.557 回答
33

更改 GUID 的步骤

  1. 右键单击解决方案资源管理器中的项目
  2. 点击卸载项目
  3. 在解决方案资源管理器中再次右键单击项目
  4. 编辑项目文件夹/projectname.csproj
  5. 查涅 GUID
  6. 右键单击并选择“重新加载项目”

<ProjectTypeGuids>标签中,在开头添加任何这些 GUID

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

{E53F8FEA-EAE0-44A6-8774-FFD645390401};
于 2014-02-07T04:24:49.717 回答
9

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

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

在开始。其他向导将不起作用。

于 2014-12-15T11:15:27.413 回答
8

什么都不做,只是更新你的 MVC 项目。在 Nuget 包管理器控制台中触发此命令。

更新包 Microsoft.AspNet.Mvc

于 2015-11-05T15:55:01.353 回答
3

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

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

是VS2010中MVC所需要的

于 2012-11-16T21:23:01.317 回答
3

通过在解决方案资源管理器中右键单击项目,您需要卸载项目、编辑项目、使用下表更改标签,然后重新加载项目。将适当的 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}
于 2015-09-22T19:02:30.503 回答
1

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

于 2014-11-02T15:34:03.610 回答
1

我知道这是一篇旧文章,但我刚刚遇到了一个 MVC 5 项目的 VS2013 和 VS2012 之间的切换。我遇到的问题是我使用的 MVC 模板版本不是从 Visual Studio 更新中安装的。VS2012 没有附带 MVC5,因为它是在它之后出现的,所以 VS2012 需要更新才能添加模板。与我想象的 VS2010 和 MVC4 相同。

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

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

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

于 2015-03-20T16:42:46.890 回答
1

对我来说,它在我期望它存在的地方丢失了(在菜单顶部,当您右键单击视图文件夹并单击“添加”时显示),但后来我在“新建”下的子上下文菜单中找到了它从模板'!我已经重新安装了锐器,我猜它是因为它而发生的(也是 Visual Studio 2012):

在此处输入图像描述

于 2015-07-10T19:14:43.097 回答
1

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

{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}
于 2015-11-11T20:38:04.323 回答
1

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

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

适用于 Visual Studio 2012 的 ASP.NET 和 Web 工具 2013.1 的下载页面

我从以下博客文章中找到了这个下载链接:

宣布发布适用于 Visual Studio 2012 的 ASP.NET 和 Web 工具 2013.1

于 2016-01-04T23:15:15.520 回答
0

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

于 2012-05-10T18:36:46.060 回答
0

对于旧版本

{F85E285D-A4E0-4152-9332-AB1D724D3325}
于 2015-02-26T13:58:55.743 回答
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

于 2016-02-07T16:27:46.637 回答
0

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

于 2017-11-07T14:35:02.773 回答
0

这是对我有用的 VS 2017。

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

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

舔“修改”并简单地重新运行它并检查所有现有组件。

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

于 2019-04-21T21:54:58.097 回答
0

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

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

于 2021-07-27T19:13:10.550 回答
-2

VS2012 上下文菜单添加控制器/视图丢失

在 VS2012 和 MVC4 中尝试在 PM 中卸载 Web API 5.2:

UnInstall-Package Microsoft.AspNet.WebApi 
于 2015-06-01T14:45:44.817 回答