2012-07-20 15 views
5

Mi controlador se hereda de otro controlador que no tiene un constructor predeterminado. T4MVC genera el siguiente constructor que supone controlador de base tiene constructor por defecto:T4MVC El controlador base no tiene el constructor predeterminado

protected MyControllerController(Dummy d) { } 

¿Cómo puedo resolver este problema? Es bastante interesante, de acuerdo con la página this, la versión 2.4.00 "problema solucionado cuando un controlador base no tiene un ctor predeterminado". También found esta pregunta, pero mi controlador base no es genérico.

+0

Pude reproducir su problema con la versión 2.10.0 ... Creo que debe publicar el problema en el rastreador de problemas de T4MVC, y hasta que se solucione, utilice la solución de la pregunta SO vinculada. A saber, agregue un constructor predeterminado a su clase base. – nemesv

+1

Estoy fuera, pero intentaré investigar esto hacia el final de la semana. –

Respuesta

6

Esto debería funcionar bien si hace que su controlador base sea abstracto. ¿Asumo que nunca necesita ser usado directamente como controlador? Si lo hace, entonces siempre puedes crear otra clase derivada no abstracta para manejar eso.

+0

Sí, hay algunas maneras de solucionarlo, pero estoy trabajando en el escenario (lo he descrito aquí: http://stackoverflow.com/questions/11576606/asp-net-mvc-reuse-of-controllermodelviewroutes) que parece bastante razonable. ¿No sería agradable si T4MVC lo admite sin hacks? – SiberianGuy

+0

No te sigo aquí. ¿Estás usando el tipo de base directamente o no? Si no, marcarlo como abstracto no es un truco, es lo correcto. –

+0

Lo estoy usando directamente. Acabo de pasar algunas dependencias específicas del controlador derivado a él. – SiberianGuy

Cuestiones relacionadas