2016-06-17 6 views
0

По ошибке я создал свой HomeController.cs в папке «Модели». Это единственный контроллер моего веб-приложения. Путь просмотра: Виды/Главная/Index.cshtmlВ ASP.net MVC, почему контроллер может быть перемещен за пределы папки контроллеров

Когда я запускаю приложение, нет проблем, он может найти контроллер. Я также попытался переместить его в подпапку, например Views/Home/HomeController.cs и все еще не проблема.

Я не могу найти маршрут или конфиг, который сообщит приложение, в котором контроллер настолько интересно, как это работает ...

ответ

6

MVC ищет что-нибудь, что наследуется от Controller при попытке соответствовать маршрут к контроллер, на самом деле не имеет значения, где находится контроллер или какое пространство имен находится в контроллере.

Для забавного небольшого эксперимента это приведет к возникновению ошибки «Было найдено несколько типов, которые соответствуют контроллеру с именем« Главная ». .. ", потому что у вас есть два контроллера с одинаковым именем в разных пространствах имен, а MVC не знает, какой из них использовать.

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

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

В качестве добавленного вопроса, как бы вы принудительно загрузили порядок загрузки контроллера с именем тот же в другом пространстве имен, в результате чего вместо этого будет загружен второй «HomeController»? Например, районы или многоквартирные дома? – zerohero

 Смежные вопросы

  • Нет связанных вопросов^_^