2012-05-02 5 views
0

Я хочу разделить логику контроллера для каждого представления в каталоге, а не иметь все это в одном контроллере, потому что я не хочу, чтобы многие действия в одном. Любой способ добиться этого?Различные контроллеры для каждого вида в каталоге?

Views-- 
    FooFolder 
      Fooview.cshtml 
      Barview.cshtml 


Controllers-- 
    FooController.cs 
    BarController.cs 
+0

просто из любопытства, почему вы хотите это сделать? – MilkyWayJoe

+1

Вы можете использовать частичный класс - это по крайней мере разделит логику на несколько файлов. Мне нравится держать мои контроллеры slim, поэтому я на самом деле не сталкиваюсь с этим, имея слишком много логики ... –

+0

Должен ли Barview.cshtml быть в BarFolder? Соглашение состоит в том, чтобы иметь одну папку Views для каждого контроллера, не так ли? Итак, сработайте сами, создав папки Controllers и View. – DOK

ответ

1

Там нет нет требования иметь мнение в определенной папке или действия определенного контроллера. Это просто соглашение, и вы можете изменить его, например, путем замены механизма просмотра или изменения определений маршрутов или путем явного указания путей просмотра. Однако, если вы хотите разделить логику контроллера, место для запуска не связано с самим контроллером, а путем разгрузки логики в бизнес-методы в другом месте и вызова этого из контроллера.

+0

Согласовано. И если вы обнаружите, что ваши действия с контроллером становятся раздутыми с логикой, я рекомендую вам посмотреть видео [размещение ваших контроллеров на диете] (http://www.viddler.com/v/b568679c). – Dangerous

+0

Речь идет не о разгрузке логики. У меня будет несколько представлений с несколькими событиями для обработки, и было бы неплохо сохранить методы действий меньшим числом для каждого контроллера, и я могу захотеть внедрить службы в контроллеры для некоторых, а не для других. – Suedeuno

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