Asp.net MVC - Asynch контроллер получает функциональность от моего базового контроллера - PullRequest
2 голосов
/ 06 апреля 2011

У меня есть базовый контроллер, который подкласс от стандартного контроллера MVC. Это содержит множество полезных методов, специфичных для контроллера.

Теперь мне нужно иметь некоторые функции asych в одном из моих новых контроллеров

Однако для этого вам нужно создать контроллер, который подклассов AsyncController

Но я также хочу получить доступ к функциональности моего базового контроллера

Очевидно, что множественное наследование невозможно

так как мне обойти это?

Ответы [ 2 ]

1 голос
/ 06 апреля 2011

Вы можете перенести функциональность, которую вы хотите использовать повторно, на сервисный уровень, фильтр действий, фильтр авторизации, связыватель модели, ... это будет зависеть от функциональности, которую вы хотите использовать повторно, чтобы вы могли легко переключать базовый контроллерна асинхронный контроллер и по-прежнему сохранять функциональность.Если вы хотите использовать асинхронные контроллеры, вам нужно получить из AsyncController .

0 голосов
/ 07 апреля 2011

Вы можете заставить свой класс контроллера наследовать IAsyncManagerContainer и IAsyncController, а затем реализовать эту функцию самостоятельно, возможно, используя код из исходного кода MVC.Вы даже можете инкапсулировать это в своем собственном классе, которому вы делегируете функциональность.

...