【问题标题】:Go To Controller shows "Unable to find a matching controller." error转到控制器显示“无法找到匹配的控制器”。错误
【发布时间】:2017-03-21 07:28:13
【问题描述】:

在 VS 2015 中,对于我的 Web.API 项目,我通过 npm 从 nuget 安装了 MVC 5。 此安装在 Views 文件夹下添加了引用并生成了 web.config 文件。

我添加了带有生成的 CRUD 函数的新控制器。当我右键单击并转到查看操作时,它没有问题。但反向操作不起作用。如果我通过浏览器导航查看它也可以。 Web 应用程序也会编译。

有什么办法可以解决 VS 中的导航问题吗?我是不是忘了加点东西?

后续作品

以下给出错误:

P.S:如果我创建全新的示例 MVC 5 应用程序,两个操作都按预期工作,这只会发生在 Web.API 项目中,MVC 5 稍后通过 nuget 添加。

【问题讨论】:

  • 我也有同样的问题。无分辨率
  • 在 Python Web 框架中,每个操作都引用相关的 HTML 文件(或视图)。我不知道为什么 ASP.MVC 会隐藏这个映射的记录。
  • @SuatAtanPhD 我同意。这简直糟透了。它们之间应该有一个简单的参考点。将其隐藏到实现细节中是没有意义的。
  • 我无法使用 VS 2017 和 MVC 5.2.3 重现该问题!它按预期工作。
  • 也许尝试发布一些代码。控制器以及您如何进行路由?

标签: c# asp.net-mvc asp.net-web-api visual-studio-2015 asp.net-mvc-5


【解决方案1】:

这发生在我身上一次。删除视图并尝试通过右键单击控制器操作方法并再次单击添加视图来再次添加视图。我认为它会解决问题

【讨论】:

    【解决方案2】:

    当控制器或视图可能不完全分别位于控制器文件夹或视图文件夹中时,就会发生这种情况。它可能包含一个附加文件夹。您可以通过添加新视图和删除旧视图来解决此问题。

    【讨论】:

      【解决方案3】:

      似乎有一个默认快捷键Ctrl-M,然后是Ctrl-G

      这将自动在控制器和视图页面之间切换。如果您在控制器/动作上,它将切换到视图,反之亦然。

      【讨论】:

        【解决方案4】:

        我的情况与您的情况不完全相同(我添加了一个新控制器和新视图),但我收到了相同的错误消息。确保控制器的名称与视图所在文件夹的名称匹配。

        例如,如果控制器是 TodoController.cs,请确保视图位于名为 Todo 的文件夹中。调用什么视图 .cshtml 文件似乎并不重要。这就是为我解决的问题。

        【讨论】:

          【解决方案5】:

          当我的控制器文件名与控制器类名不匹配时,我遇到了这种情况:

          我有一个名为 InvoicesController 的控制器类,但文件名为 InvoiceController.cs。将文件名重命名为控制器的类名后,从视图切换回控制器开始工作

          【讨论】:

            【解决方案6】:

            我刚刚有了这个,控制器与 Controllers 文件夹位于同一文件夹中。我将它移到文件夹中,然后它就起作用了。 至少读到这里,我找到了在控制器和视图之间切换的快捷键:-)

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2013-04-13
              • 1970-01-01
              • 2015-01-20
              • 1970-01-01
              相关资源
              最近更新 更多