Вы в корне неправильно понимаете MVC, по крайней мере, как это реализовано в CI.
Все URL-адреса на вашем сайте (по крайней мере, те, которые используют инфраструктуру CI) отображаются на функции (методы) в контроллерах.
http://myCIsite.com/controller/method[/var1][/var2]...
Не имеет значения, доступен ли URL-адрес по обычному HTTP или через AJAX. Это всегда сопоставление один к одному. Из-за этого вы должны думать о комбинации контроллер / метод как о «веб-странице». Не думайте о представлении как о веб-странице.
Модели и представления подчинены контроллерам. Контроллер делегирует им конкретные обязанности - взаимодействие с базой данных для моделей и вывод страниц на представления.
Поскольку модели и представления служат только для выполнения делегированных обязанностей, их использование не требуется ни в одном конкретном контроллере / методе. Например, страницам справки обычно не нужно взаимодействовать с базой данных, поэтому не существует модели, используемой комбинацией контроллер / метод, которая обслуживает данную страницу справки. Аналогично, обработчики форм часто перенаправляют на другую страницу после завершения обработки. Таким образом, нет представления, соответствующего обработчику формы (но есть (вероятно) представление, вызываемое из контроллера / метода в перенаправленном на страницу).
Кроме того, модели и представления не обязательно соответствуют один на один с отдельными контроллерами / методами. Любая данная модель может быть загружена и использована из нескольких контроллеров. Аналогично, контроллер может иметь одно монолитное представление, которое используется всеми методами, или каждому методу может быть назначено свое собственное представление. (Или, как я только что сказал, данный контроллер / метод может вообще не использовать представление.)
Наконец, CI не требует строгого разделения MVC. Вы можете взаимодействовать с базой данных и выводить HTML-код изнутри контроллера, и CI не будет жаловаться. Тем не менее, за этим разделением и делегированием ответственности следуют, потому что логическое разделение обязанностей облегчает чтение кода и помогает вам следовать принципу СУХОЙ в своем кодировании.
Фундаментальное понимание состоит в том, что «веб-страница» соответствует контроллеру / методу. Представление и модель, когда они используются, обрабатывают делегированные обязанности для контроллера / метода.