2012-07-20 15 views
5

Il mio controller è ereditato da un altro controller che non ha un costruttore predefinito. T4MVC genera il seguente costruttore che presuppone che il controller di base abbia il costruttore predefinito:Il controller di base T4MVC non ha il costruttore predefinito

protected MyControllerController(Dummy d) { } 

Come posso risolvere questo problema? Interessante, secondo la versione this, versione 2.4.00 "problema risolto quando un controller di base non ha un ctor predefinito". Ho anche found questa domanda SO, ma il mio controller di base non è generico.

+0

Sono stato in grado di riprodurre il problema con la versione 2.10.0 ... Penso che dovresti pubblicare il problema sul tracker dei problemi di T4MVC, e fino a quando non viene risolto usa la soluzione alternativa dalla domanda SO collegata. Vale a dire aggiungere un costruttore predefinito alla classe base. – nemesv

+1

Sono fuori, ma cercherò di indagare su questo verso la fine della settimana. –

risposta

6

Ciò dovrebbe funzionare correttamente se si crea il controller di base astratto. Suppongo che non debba mai essere usato direttamente come controller? Se lo fa, puoi sempre creare un'altra classe derivata non astratta per gestirla.

+0

Sì, ci sono un paio di modi per risolvere il problema ma sto lavorando allo scenario (l'ho descritto qui: http://stackoverflow.com/questions/11576606/asp-net-mvc-reuse-of-controllermodelviewroutes) che sembra abbastanza ragionevole. Non sarebbe bello se T4MVC lo supportasse senza hack? – SiberianGuy

+0

Non ti segue qui. Stai usando il tipo di base direttamente o no? In caso contrario, contrassegnarlo come astratto non è un hack, è la cosa giusta da fare. –

+0

Lo sto usando direttamente. Passo solo alcune dipendenze specifiche dal controller derivato ad esso. – SiberianGuy

Problemi correlati