2016-06-17 5 views
0

誤って、モデルフォルダのHomeController.csを作成しました。 これは私のWebアプリケーションの唯一のコントローラです。ビューのパスは次のとおりです。Views/Home/Index.cshtmlASP.net MVCでコントローラをControllersフォルダの外に移動できる理由

私がアプリケーションを実行すると、問題はなく、コントローラが見つかります。 Views/Home/HomeController.cs のようなサブフォルダにも移動しようとしましたが、それでも問題はありません。

私は、コントローラはので、私はそれがどのように動作するか疑問であるアプリケーションを教えてくれるルートや設定を見つけることができません...

答えて

6

へのルートと一致するようにしようとしたときMVCはControllerから継承ものを探しますコントローラが存在する場所やコントローラが存在するネームスペースは実際には関係ありません。

楽しい少しの実験では、「これはコントローラ名「Home」という名前のコントローラに一致する複数のタイプが見つかりました。 .. "という名前のコントローラは、異なる名前空間に同じ名前で2つあり、MVCはどちらを使用するのかわからないからです。

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

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

追加の質問として、別の名前空間で同じ名前のコントローラの読み込み順序を強制すると、2番目の「HomeController」が代わりに読み込まれます。例、エリアまたはマルチテナンシー? – zerohero

関連する問題