2012-07-20 11 views
5

Mój kontroler jest dziedziczony z kontrolera anothe, który nie ma domyślnego konstruktora. T4MVC generuje następujący konstruktor, który zakłada, że ​​kontroler podstawowy ma domyślnego konstruktora:Kontroler podstawowy T4MVC nie ma domyślnego konstruktora

protected MyControllerController(Dummy d) { } 

Jak mogę rozwiązać ten problem? Co ciekawe, zgodnie z this strona, wersja 2.4.00 "Naprawiono problem, gdy kontroler podstawowy nie ma domyślnego ctor". Też I found to pytanie SO, ale mój podstawowy kontroler nie jest ogólny.

+0

Udało mi się zafundować twój problem z wersją 2.10.0 ... Myślę, że powinieneś opublikować problem w narzędziu do śledzenia problemów T4MVC, i dopóki nie zostanie naprawiony, użyj obejścia z połączonego pytania SO. Mianowicie dodaj domyślny konstruktor do swojej klasy bazowej. – nemesv

+1

Wychodzę, ale spróbuję to zbadać pod koniec tygodnia. –

Odpowiedz

6

To powinno działać dobrze, jeśli zmodyfikujesz kontroler podstawowy. Zakładam, że nigdy nie musi być używany bezpośrednio jako kontroler? Jeśli tak, zawsze możesz utworzyć inną klasę pochodną nie abstrakcyjną, aby ją obsłużyć.

+0

Tak, istnieje kilka sposobów na obejście tego problemu, ale pracuję nad scenariuszem (opisałem go tutaj: http://stackoverflow.com/questions/11576606/asp-net-mvc-reuse-of-controllermodelviewroutes), który wygląda całkiem rozsądnie. Czy nie byłoby miło, gdyby T4MVC wspierało to bez hacków? – SiberianGuy

+0

Nie śledzę Cię tutaj. Czy używasz typu bazowego bezpośrednio, czy nie? Jeśli nie, to oznaczenie go jako abstrakcyjnego nie jest hackerem, to słuszne. –

+0

Używam go bezpośrednio. Po prostu przekazuję mu określone zależności od kontrolera pochodnego. – SiberianGuy

Powiązane problemy