Pergunta

É possível mapear uma rota com MapRoute e especificar um controlador genérico, por exemplo,

        context.MapRoute(
            "Dashboard_Edit", // Route name
            "dashboard/edit/{*pagePath}",
            new { controller = "Dashboard`1", action = "edit", pagePath = "home" }
            );
Foi útil?

Solução

Infelizmente, não é permitido com a fábrica de controladores padrão. O tipo "Dashboard`1" é para um tipo genérico aberto e não pode ser construído. Em outras palavras, com a fábrica de controladores padrão, os únicos valores permitidos para "controlador" são aqueles que podem se encaixar na seguinte sintaxe da pseudo:

IController c = new SomeControllerType();

o SomeControllerType Deve ser válido (embora sem o sufixo ou espaço para nome do "controlador") e deva ter um construtor sem parâmetros.

Você sempre pode escrever uma fábrica de controladores personalizados que possui funcionalidade mais avançada e entenda como construir tipos genéricos.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top