错误地,我在Models文件夹中创建了我的HomeController.cs。 这是我的webapplication的唯一控制器。视图路径为:Views / Home / Index.cshtml
当我运行应用程序时,没有问题,它可以找到控制器。 我还尝试将其移动到像Views / Home / HomeController.cs这样的子文件夹 仍然没问题。
我无法找到路径或配置,告诉应用程序控制器在哪里,所以我想知道它是如何工作的......
答案 0 :(得分:7)
当尝试将路由与控制器匹配时,MVC会查找从Controller
继承的任何内容,控制器所在的位置或控制器所在的命名空间实际上并不重要。
对于一个有趣的小实验,这将产生错误"发现多个类型匹配名为' Home' ..."因为在不同的命名空间中有两个具有相同名称的控制器,MVC不知道要使用哪个控制器。
namespace Something
{
public class HomeController : Controller
{
public ActionResult Index()...
}
}
namespace OrOther
{
public class HomeController : Controller
{
public ActionResult Index()...
}
}