2012-11-29 6 views
1

J'ai la configuration suivante:
BaseController1 hérite System.Web.Mvc.Controller. Ce contrôleur est compilé dans une DLL distincte qui est référencée à partir de mon projet.
BaseController2 hérite BaseController1 dans mon projet.
MyController hérite BaseController2.

Lorsque j'exécute une application avec cette configuration, j'obtiens une erreur 404.

Mais si BaseController2 hérite directement System.Web.Mvc.Controller, et je lance l'application avec cette configuration, tout fonctionne comme prévu.

J'ai le constructeur par défaut pour tous les contrôleurs hérités avec: base() appelé.
Le BaseController1 intérieur de l'ensemble est compilé en utilisant les références à asp.net mvc 3, et mon projet dépend entièrement du asp.net mvc 4.

Peut-être le problème? Ou je fais quelque chose de mal.

Merci d'avance!ASP.NET MVC 4 héritage contrôleur

+0

Si vous déboguez par il, quelle est l'erreur réelle qui génère la 404? Avez-vous une trace de pile ou une exception qui se produit? –

Répondre

1

Tu fais rien de mal, mais vous devrez faire paraître MVC dans l'assemblage/espace de nom spécifique:

ControllerBuilder.Current.DefaultNamespaces.Add(
    "ExternalAssembly.Controllers"); 

Cela a déjà répondu à cette question: asp.net mvc put controllers into a separate project

+0

Vous me pointez dans la bonne direction. La solution consistait à définir 'Specific Version' sur false sous les propriétés de System.web.mvc dll dans Visual Studio. Merci! – MaxReac