2013-02-27 4 views
0

J'ai besoin de faire une nouvelle maison dans une nouvelle zone, mais j'ai une erreur: Plusieurs types ont été trouvés qui correspondent au contrôleur nommé «Accueil». Cela peut se produire si la route qui traite cette demande ('{controller}/{action}/{id}') ne spécifie pas les espaces de noms pour rechercher un contrôleur qui correspond à la requête. Si c'est le cas, enregistrez cette route en appelant une surcharge de la méthode 'MapRoute' qui prend un paramètre 'namespaces'. ma nouvelle zonePlusieurs types ont été trouvés contrôleur de la maison

Domaines/Administrativo/Contrôleurs/HomeController

zones/Administrativo/Vues/Accueil

mon AdministrativoAreaRegistration

public override void RegisterArea(AreaRegistrationContext context) 
    { 
     context.MapRoute(
      "Administrativo_default", 
      "Administrativo/{controller}/{action}/{id}", 
      new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
     ); 

    } 

dans Global j'ai

public static void RegisterRoutes(RouteCollection routes) 
    { 
     routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

     routes.MapRoute(
      "Default", // Route name 
      "{controller}/{action}/{id}", // URL with parameters 
      new { controller = "Home", action = "Index", id = UrlParameter.Optional }, new[] { "Preparacao.Gerenciar.Web.Controllers" } // Parameter defaults 
     ); 
    } 

Répondre

2

Vous devriez spécifier namespace e contrainte dans votre zone d'enregistrement d'itinéraire (vérifier si l'espace de noms est correct):

public override void RegisterArea(AreaRegistrationContext context) 
{ 
    context.MapRoute(
     "Administrativo_default", 
     "Administrativo/{controller}/{action}/{id}", 
     new { controller = "Home", action = "Index", id = UrlParameter.Optional }, 
     new[] { "Preparacao.Gerenciar.Web.Areas.Administrativo.Controllers" } 
    ); 
} 

de la même façon que vous avez fait avec vos principaux enregistrements d'itinéraire:

public static void RegisterRoutes(RouteCollection routes) 
{ 
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

    routes.MapRoute(
     "Default", // Route name 
     "{controller}/{action}/{id}", // URL with parameters 
     new { controller = "Home", action = "Index", id = UrlParameter.Optional }, // Parameter defaults 
     new[] { "Preparacao.Gerenciar.Web.Controllers" } 
    ); 
} 
+0

homme merci, je mettais nouvelle [] { "Preparacao.Gerenciar.Web.Controllers"} au lieu de new [] {"Preparacao.Gerenciar.Web.Areas.Administrativo.Controllers"} – thefirexa

+0

Est-ce que ça marche maintenant? –

+0

oui merci problèmes fixes – thefirexa

Questions connexes