在 ASP.net MVC 中,为什么可以将控制器移出 Controllers 文件夹
In ASP.net MVC, why the controller can be moved outside of the Controllers folder
我错误地在文件夹模型中创建了我的 HomeController.cs。
这是我的网络应用程序的唯一控制器。查看路径为:Views/Home/Index.cshtml
当我运行应用时,没有问题,可以找到控制器。
我也尝试将其移动到 Views/Home/HomeController.cs 之类的子文件夹
还是没问题。
我找不到可以告诉应用程序控制器在哪里的路由或配置,所以我想知道它是如何工作的...
当尝试将路由与控制器匹配时,MVC 会查找从 Controller
继承的任何内容,实际上控制器驻留的位置或控制器所在的名称空间并不重要。
对于一个有趣的小实验,这将产生错误 "Multiple types were found that match the controller named 'Home'...",因为您有两个控制器在不同的命名空间中具有相同的名称,而 MVC 不知道该使用哪个。
namespace Something
{
public class HomeController : Controller
{
public ActionResult Index()...
}
}
namespace OrOther
{
public class HomeController : Controller
{
public ActionResult Index()...
}
}
我错误地在文件夹模型中创建了我的 HomeController.cs。 这是我的网络应用程序的唯一控制器。查看路径为:Views/Home/Index.cshtml
当我运行应用时,没有问题,可以找到控制器。 我也尝试将其移动到 Views/Home/HomeController.cs 之类的子文件夹 还是没问题。
我找不到可以告诉应用程序控制器在哪里的路由或配置,所以我想知道它是如何工作的...
当尝试将路由与控制器匹配时,MVC 会查找从 Controller
继承的任何内容,实际上控制器驻留的位置或控制器所在的名称空间并不重要。
对于一个有趣的小实验,这将产生错误 "Multiple types were found that match the controller named 'Home'...",因为您有两个控制器在不同的命名空间中具有相同的名称,而 MVC 不知道该使用哪个。
namespace Something
{
public class HomeController : Controller
{
public ActionResult Index()...
}
}
namespace OrOther
{
public class HomeController : Controller
{
public ActionResult Index()...
}
}