我已将 ASP.NET MVC 4 集成到现有的 asp.net 网站中。两者都工作正常,但我没有看到任何菜单/快捷方式来在 Visual Studio IDE 中创建控制器/视图。那些仅适用于 ASP.NET MVC 模板吗?
18 回答
那些仅适用于 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 特定的上下文菜单。
更改 GUID 的步骤
- 右键单击解决方案资源管理器中的项目
- 点击卸载项目
- 在解决方案资源管理器中再次右键单击项目
- 编辑项目文件夹/projectname.csproj
- 查涅 GUID
- 右键单击并选择“重新加载项目”
在<ProjectTypeGuids>
标签中,在开头添加任何这些 GUID
{E3E379DF-F4C6-4180-9B81-6769533ABE47};
{E53F8FEA-EAE0-44A6-8774-FFD645390401};
对于使用 MVC 5 的人,请添加此密钥
{E3E379DF-F4C6-4180-9B81-6769533ABE47};
在开始。其他向导将不起作用。
什么都不做,只是更新你的 MVC 项目。在 Nuget 包管理器控制台中触发此命令。
更新包 Microsoft.AspNet.Mvc
答案 2 是正确的只是错误的指导
{E53F8FEA-EAE0-44A6-8774-FFD645390401}
是VS2010中MVC所需要的
通过在解决方案资源管理器中右键单击项目,您需要卸载项目、编辑项目、使用下表更改标签,然后重新加载项目。将适当的 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}
当打开 MVC 项目作为网站时,我遇到了同样的问题。我通过 Open -> Project 重新打开了解决方案,并且此功能按预期工作。
我知道这是一篇旧文章,但我刚刚遇到了一个 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
对我来说,它在我期望它存在的地方丢失了(在菜单顶部,当您右键单击视图文件夹并单击“添加”时显示),但后来我在“新建”下的子上下文菜单中找到了它从模板'!我已经重新安装了锐器,我猜它是因为它而发生的(也是 Visual Studio 2012):
与VS2015有同样的问题,帮助将 ProjectTypeGuids 内容更改为:
{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}
我在 VS2012 上并尝试了 Dimitrov 的答案(将特定的 GUID 添加到项目文件的 ProjectTypeGuids)。虽然这确实给了我缺少控制器操作的上下文菜单,但我在我的 Razor 页面上缺少智能感知。
事实证明,我正在处理的 MVC 项目版本缺少 VS 工具,安装此工具(而不是编辑项目文件)解决了我的问题。
适用于 Visual Studio 2012 的 ASP.NET 和 Web 工具 2013.1 的下载页面
我从以下博客文章中找到了这个下载链接:
你是对的。这些上下文菜单选项的存在是项目类型/模板特定的。
对于旧版本
{F85E285D-A4E0-4152-9332-AB1D724D3325}
当所有其他方法都失败时(在重新安装 VS2015 之前),您可能需要重置 VS 缓存。这对我有用(修复后 - 不干预 GUIDS)。只需删除此链接中提到的文件夹中的内容(大约需要 30 秒),然后执行命令。这需要另外 10 秒。重新启动 VS,您将在 VS 中看到第一次使用的用户的屏幕。它就像一个魅力。
当您刚刚从代码存储库中检出解决方案的新副本并且尚未下载包括 Microsoft.AspNet.Mvc 在内的 NuGet 包时,也会出现此问题。重建解决方案可以解决问题。
这是对我有用的 VS 2017。
首先检查您是否能够创建一个新的空 MVC 项目。
如果不是 - 这意味着缺少某些组件。启动 Visual Studio 安装程序(通常位于其中,C:\Program Files (x86)\Microsoft Visual Studio\Installer\vs_installer.exe
但您只需点击“开始”并开始输入“Visual Studio 安装程序”)
舔“修改”并简单地重新运行它并检查所有现有组件。
只需确保选中“ASP.NET Web 开发”即可。
您可能已将项目作为文件夹类型打开,这限制了 Visual Studio IDE 以限制某些 GUID 选项,因此请加载您的项目解决方案。
它应该工作。右键单击 ActionResult 或内部控制器后,添加视图或添加控制器应该可用。
VS2012 上下文菜单添加控制器/视图丢失
在 VS2012 和 MVC4 中尝试在 PM 中卸载 Web API 5.2:
UnInstall-Package Microsoft.AspNet.WebApi