Контроллер не .Если вам нужна страница с url /Views/Members/Business/ThePage
, вы решите это с помощью определения маршрута в вашем global.asax.cs.Если вам нужно поместить представления в подпапки для организации, вам следует рассмотреть возможность разделения ваших контроллеров.
Обновление в ответ на ваш комментарий.
Вкратце:да, определения маршрутизации ответственны за выбор того, какой контроллер должен обрабатывать ваш запрос.
Похоже, что имеется немного более подробное описание того, как была разработана инфраструктура MVC для использования.Я оставлю это действительно базовым и пропущу все, что касается внутренней работы фреймворка.(Это заставит некоторых продвинутых читателей думать, что я говорю вещи, которые совершенно неверны. Пожалуйста, потерпите меня - я просто преднамеренно небрежен ...) Вот так ...
Когда запрос отправляется из браузера на ваш веб-сервер, платформа MVC переходит к определениям маршрута, чтобы увидеть, куда должен быть отправлен запрос.Он просматривает их в том порядке, в котором вы их определили, сначала сверху, поэтому при наличии нескольких совпадений будет релевантным только первое.(Поэтому вы хотите, чтобы ваши общие маршруты, такие как маршрут по умолчанию, были внизу.)
Когда каркас решил, что маршрут совпадает, он ищет то, чтоконтроллер и действие, на которое должен быть направлен URL.Он заполняет все параметры действия данными из URL и вызывает метод действия.
Метод действия на контроллере теперь отвечает за то, чтобы быть «пауком в центре сети».", это инструменты все, что нужно сделать, чтобы служить ответ.Это может включать в себя запрос вашей модели для данных, вызов различных библиотечных методов для расчетов или почти что-либо еще.Последним шагом метода контроллера является определение того, какой ответ должен быть возвращен - в большинстве базовых случаев ответ должен быть представлением, а код для его возврата - return View();
.
Представление (или любой другой результат, который вы возвращаете), возможно, получает некоторые данные от контроллера, а затем отвечает за правильное отображение этих данных.Когда представление выполнило свою работу, инфраструктура отправляет его обратно клиенту.
Как вы можете видеть, решение о том, какое действие контроллера следует вызвать, намного раньше (шаг 1 и2) чем решение о том, каким должен быть возвращаемый результат (конец шага 3), и они даже не обязательно связаны друг с другом.
Чтобы отразить это в вашем приложении, вы хотитеиметь структуру папок и файлов для контроллеров и представлений, которая соответствует доступным контроллерам и их методам действий (по крайней мере, те из них, которые могут возвращать ViewResult
), и коллекцию маршрутов, которая отражает, какие URL-адреса вы хотите использовать для своего пользователядобраться до этих действий контроллера.Определив больше маршрутов, чем по умолчанию, вы можете получить довольно разнообразные структуры URL, не меняя вообще свой контроллер / метод действия / структуру представления.
Если все это все еще похоже на лабиринтрешений, возможно, было бы целесообразно перейти на http://www.asp.net/mvc/ и посмотреть некоторые обучающие видео или прочитать некоторые учебные пособия.Там есть несколько действительно хороших видео и текстов о том, как работает фреймворк и как он предназначен для использования.