转至控制器显示“无法找到匹配的控制器”。错误

时间:2016-11-07 20:21:10

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

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

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

我有什么方法可以解决VS中的导航问题吗?我忘了添加一些东西吗?

以下作品

this works with no problem

以下给出错误:

this does not work

error

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

5 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:4)

这件事发生在我身上。删除视图并尝试再次添加视图,方法是右键单击控制器操作方法,然后再次单击“添加视图”。我认为它可以解决问题

答案 2 :(得分:4)

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

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

答案 3 :(得分:1)

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

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

答案 4 :(得分:0)

当我的控制器文件名与控制器类名称不匹配时,我有这个确切的场景:

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