如何在我的ASP.NET MVC项目中获取“添加控制器”和“添加视图”菜单选项?

4
我手动将ASP.NET MVC添加到现有的WebForms应用程序中...感谢这篇教程。但是,现在我没有菜单选项(右键单击Controllers文件夹或Views文件夹时)来显示添加控制器或添加视图对话框。当创建全新的MVC项目时,我是有这个选项的。如何让Visual Studio意识到我正在使用混合项目中的MVC?
6个回答

10

技术上讲,控制器只是放在控制器文件夹中的.CS文件,而视图只是放在视图文件夹中的.ASPX文件。 你的控制器类需要继承自基础Controller类,你的ASPX页面需要继承自System.Web.Mvc.ViewPage。

至于如何将这些项目添加到菜单中,请尝试打开您的项目文件,并将projecttypeguids标签替换为此标签。

<ProjectTypeGuids>{603c0e0b-db56-11dc-be95-000d561079b0};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids>

这对我有用;除了 projecttypeguid{F85E285D-A4E0-4152-9332-AB1D724D3325};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}。我从一个现有的工作的 MVC 应用程序中复制了它。我怀疑这只是由于不同版本的 MVC。 - mlsteeves
可能是在我回答上面问题时,大约是在 MVC2 时期。 - Harv
我使用VS2013 RC玩了一下MVC5,然后在试用期结束后将解决方案返回到VS2012。我保留了MVC5项目,因为它们与bootstrap等集成得非常好,但是当切换回VS2012时,遇到了与OP相同的问题。因此,对于我的情况,在VS2013中的MVC 5转换为VS2012中的MVC 4,可以通过以下project typeguids来恢复我的脚手架选项:{E3E379DF-F4C6-4180-9B81-6769533ABE47};{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}。 - rism
我有 Visual Studio 2015 Enterprise。但是这些密钥不适用于我的 MVC 4 应用程序。在控制器操作上下文菜单中,它显示了“转到视图”,但没有显示“创建视图”。 - Jenish Zinzuvadiya

2
为了修复您的计算机,请访问以下网址:http://www.microsoft.com/en-us/download/details.aspx?id=41532,并确保您安装了 "ASP.NET和Web工具2013.1 for Visual Studio 2012" 和 "ASP.NET和Web框架2013.1 - Visual Studio 2012"。
安装完成后,您应该在已安装程序列表中看到它们两个。
要获取更多详细信息,您可以查看此网址:http://blogs.msdn.com/b/webdev/archive/2013/11/18/announcing-release-of-asp-net-and-web-tools-2013-1-for-visual-studio-2012.aspx
Project Type GUID 只是一个解决方法。但是在安装这些之后,它将被自动删除。

1

我遇到了同样的问题,但我是从一个干净的Asp.Net MVC项目开始的。不知道为什么会发生这种情况。虽然我非常清楚控制器是什么(Harv),但我仍然希望自动生成上下文敏感菜单选项所提供的功能。根据Walther视频,在编辑控制器文件时,CS菜单未出现在“解决方案资源管理器”或文档窗口中。他只需右键单击Index方法,就会得到一个cs菜单选项来创建视图,添加视图对话框窗口。顺便说一句,我的项目GUID与您提供的GUID相同,所以这并没有帮助。

谢谢, Berlioz


1

仅更新您的MVC项目版本即可,使用Nuget包管理器控制台中的此命令。

Update-Package Microsoft.AspNet.Mvc

重新启动您的Visual Studio项目。

还要记得这一点。 为了解决此错误:

Attempt by security transparent method 'WebMatrix.WebData.PreApplicationStartCode.Start()'

安装-Package -Id Microsoft.AspNet.WebHelpers


0

我在使用Visual Studio Enterprise 2015 update1时遇到了这个问题,后来通过安装最新的更新解决了。


-4

ASP.NET MVC 偏爱约定优于配置,因此除了 Harv 的答案之外,没有其他方法可以设置它。您必须右键单击名为 Controllers 和 Views 的文件夹才能获得这些选项。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接