2016-06-17 20 views
0

錯誤地,我在Models文件夾中創建了我的HomeController.cs。 這是我的web應用程序的唯一控制器。視圖路徑是:查看/主頁/ Index.cshtml在ASP.net MVC中,爲什麼控制器可以移動到Controllers文件夾之外

當我運行應用程序,是沒有問題的,它可以找到控制器。 我也試圖將它移動到像Views/Home/HomeController.cs 這樣的子文件夾,但仍然沒有問題。

我無法找到一個途徑,或配置,這將告訴應用程序,其中控制器所以我不知道它是如何工作...

回答

6

MVC查找任何試圖匹配的路由時,從Controller繼承一個控制器,控制器所在的位置或控制器的命名空間並不重要。

對於一個有趣的小實驗,這將產生錯誤「找到多個與名爲'Home'的控制器相匹配的錯誤。 ..「,因爲在不同的命名空間中有兩個具有相同名稱的控制器,並且MVC不知道要使用哪一個。

namespace Something 
{ 
    public class HomeController : Controller 
    { 
     public ActionResult Index()... 
    } 
} 

namespace OrOther 
{ 
    public class HomeController : Controller 
    { 
     public ActionResult Index()... 
    } 
} 
+0

作爲一個附加的問題,你將如何強制在另一個命名空間中命名相同的控制器的加載順序,從而第二個「HomeController」將被加載?例如,地區還是多租戶? – zerohero

相關問題