【问题标题】:Context menu to Add Controller/View missing添加控制器/视图的上下文菜单丢失
【发布时间】:2012-05-19 09:23:38
【问题描述】:

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

【问题讨论】:

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


【解决方案1】:

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

【讨论】:

  • 感谢您的回复。是否有任何插件可用于在 ASP.NET Web 表单应用程序中利用 MVC?
  • @StormeHawke 我不同意,它直接回答了上面的问题:“那些仅适用于 ASP.NET MVC 模板吗?”。
【解决方案2】:

这些是否仅适用于 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 特定的上下文菜单。

【讨论】:

  • 您必须将新的 GUID 添加为第一项才能使其正常工作(否则无法加载项目)。
  • 只是把它扔在那里 - 在 VS2013 上,我能够通过卸载项目然后重新加载项目来解决这个问题。 -IE。我不必乱搞 ProjectTypeGuids。
  • 为我工作,但我首先需要安装此更新:blogs.msdn.com/b/webdev/archive/2013/11/18/…
  • Visual Studio 2013 {E53F8FEA-EAE0-44A6-8774-FFD645390401} 为我工作,但 {E3E379DF-F4C6-4180-9B81-6769533ABE47} 没有
  • 当我修改 .csproj 文件并添加 GUID,然后重新加载项目时,Visual Studio 会删除 GUID。我假设 Visual Studio 认为 GUID 无效,这就是它决定删除它的原因。我正在使用 Visual Studio 2012
【解决方案3】:

答案 2 是正确的只是错误的 guid

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

是VS2010中MVC所需要的

【讨论】:

  • 嗨,唐。欢迎来到 StackOverflow。无法保证出现在页面上的顺序答案(默认情况下会随排名而变化),因此通过 # 引用帖子可能会造成混淆。
【解决方案4】:

更改 GUID 的步骤

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

&lt;ProjectTypeGuids&gt; 标签的开头添加任何这些 GUID

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

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

【讨论】:

  • Visual Studio 2013 {E53F8FEA-EAE0-44A6-8774-FFD645390401} 为我工作,但 {E3E379DF-F4C6-4180-9B81-6769533ABE47} 没有
  • 对于 MVC5 你需要添加:{E3E379DF-F4C6-4180-9B81-6769533ABE47};
  • 我有多个类库项目,当我按照提到的进行更改时,我得到this 错误?
  • 那里没有适合我的指南
【解决方案5】:

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

【讨论】:

  • 如果可以,请提供更多详细信息。简短的答案是可以接受的,但更好的答案比这更详细。请参阅 StackOverflow 的 how to answer
【解决方案6】:

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

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

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

【讨论】:

  • 谢谢!这有助于我使用 MVC5
  • 使用 MVC5 在 vs 2012 中为我工作
【解决方案7】:

对于旧版本

{F85E285D-A4E0-4152-9332-AB1D724D3325}

【讨论】:

    【解决方案8】:

    我知道这是一篇旧帖子,但我刚刚在一个 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

    【讨论】:

      【解决方案9】:

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

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

      UnInstall-Package Microsoft.AspNet.WebApi 
      

      【讨论】:

        【解决方案10】:

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

        【讨论】:

          【解决方案11】:

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

          【讨论】:

            【解决方案12】:

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

            更新包 Microsoft.AspNet.Mvc

            【讨论】:

            • 为我工作。更改 GUID 没有帮助(我的项目中已经有了 MVC 4 GUID)。
            【解决方案13】:

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

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

            【讨论】:

            • 你改了哪个文件?
            • 我更改了 .csproj 文件
            【解决方案14】:

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

            事实证明,我正在处理的 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

            【讨论】:

              【解决方案15】:

              当所有其他方法都失败时(在重新安装 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

              【讨论】:

                【解决方案16】:

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

                【讨论】:

                  【解决方案17】:

                  这就是 VS 2017 对我有用的地方。

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

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

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

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

                  【讨论】:

                    【解决方案18】:

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

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

                    【讨论】:

                      猜你喜欢
                      • 1970-01-01
                      • 1970-01-01
                      • 1970-01-01
                      • 2016-05-31
                      • 2015-03-26
                      • 1970-01-01
                      • 2014-06-23
                      • 2013-11-19
                      • 2015-08-01
                      相关资源
                      最近更新 更多