2013-09-25 3 views
1

Это очень простой вопрос, но я не могу найти четких, простых и прямых ответов.MVC4 Несколько контроллеров

У меня есть базовое приложение MVC4 с 1 файлом HomeController.cs. Я хочу создать второй файл Controller.cs, чтобы добавить больше кода, поэтому HomeController не превращается в код спагетти.

Очевидно, что шаг 1 - это добавить новый контроллер. Я предполагаю, что следующий шаг - добавить некоторые вещи в RouteConfig.cs.

Что нужно добавить к RouteConfig.cs для использования нового Controller.cs?

+0

Разделение кода на два файла не будет исправлять проблему с кодом спагетти ... если что-нибудь, это сделает его хуже , Почему бы не использовать надлежащие методы ориентации объектов? – JDB

+1

Я не думаю, что он действительно хочет разбить HomeController на несколько частей. Я думаю, он просто хочет разбить действия на разные логические контроллеры, а не объединять несвязанные действия в одном файле. –

+0

Нет необходимости менять RouteConfig.cs, если вы планируете сохранить шаблон (controller/action/id). Подробнее о маршрутах: http://www.asp.net/mvc/tutorials/controllers-and-routing –

ответ

3

Как выглядит ваш файл маршрутов?

Обычно есть маршрут по умолчанию:

routes.MapRoute("default", 
    "{controller}/{action}/{id}", 
    new { controller = "Home", action="Index" } 
); 

Это означает, что до тех пор, как вы добавите новый контроллер с суффиксом Controller, MVC будет убедиться, что двигатель маршрутизации видит контроллер, и до тех пор, как ваш URL следует за указанной выше структурой, запросы, сделанные в этом формате, будут перенаправлены на соответствующий контроллер.

5

Вам не нужно ничего добавлять. HomeController требует, чтобы строка RouteConfig была настроена в качестве контроллера по умолчанию (когда пользователи переходят к корню сайта), но любой другой контроллер должен быть доступен с маршрутизацией по умолчанию.

Просто создайте контроллер, добавьте некоторые действия, и вы должны иметь возможность маршрутизировать его в формате Controller/Action или с помощью вспомогательных функций маршрутизации.

0

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

0

Что вам нужно сначала после создания нового контроллера - добавить новое действие (если оно не добавлено автоматически), а затем добавить новый вид для вашего нового действия. Вам нужно коснуться ваших маршрутов только в том случае, если вы собираетесь обработать некоторые параметры, которые не соответствуют вашим настройкам по умолчанию.

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