4

J'ai un itinéraire personnalisé dans une zone comme suit:ASP.NET MVC 3 zones - Impossible de trouver la route Voir Avec personnalisée

context.Routes.Add(
       "SearchIndex - By Location - USA", 
       new CountryTypeSpecificRoute(
        CountryType.UnitedStates, 
        "search/{locationType}-in-{query}", 
        new { controller = "Search", action = "Index", query = UrlParameter.Optional }, 
        new { locationType = new UsaLocationSearchRouteConstraint() }) 
      ); 

Exemple URL:

/Recherche/quartiers-dans-new-york-city

Résout l'action très bien. Mais il ne peut pas trouver la vue.

La vue 'Index' ou son maître n'a pas été trouvé ou aucun moteur de vue prend en charge les emplacements recherchés. Les endroits suivants ont été recherchés: ~/Vues/Recherche/Index.cshtml ~/Vues/Shared/Index.cshtml

La vue dans la vie ~/zones/Recherche/Vues/Recherche/Index.cshtml

Pourquoi n'y a-t-il pas regardé? Si je fais context.MapRoute au lieu de context.Routes.Add, cela fonctionne. Donc, il semble que cela a à voir avec le fait que j'utilise un itinéraire personnalisé?

Des idées?

Répondre

5

résolu grâce à this answer

J'ai fait mettre en œuvre mon itinéraire personnalisé IRouteWithArea (prendre dans la cteur), et mettre à jour mon inscription en conséquence:

context.Routes.Add(
       "SearchIndex - By Location - USA", 
       new CountryTypeSpecificRoute(
        CountryType.UnitedStates, 
        "search/{locationType}-in-{query}", 
        new { controller = "Search", action = "Index", query = UrlParameter.Optional }, 
        new { locationType = new UsaLocationSearchRouteConstraint() }, 
        "Search") 
      ); 

Notez le dernier paramètre « Recherche » - pour le nom de la zone.

Je ne sais pas comment cela fonctionne, mais c'est le cas. Supposons que le moteur de routage interne recherche les routes qui implémentent IRouteWithArea.

Problème résolu!

+1

C'est génial! J'ai juste trébuché dessus ceci même ne cherchant pas cette solution ... mais je l'ai rencontré dans un certain nombre de fois! – SoWeLie

Questions connexes