2010-04-24 8 views
0

J'ai créé une zone nommée "Admin". J'ai également créé un contrôleur (Pages) et une vue (Liste) dans ces zones.Zones ASP.NET MVC 2, comportement de routage étrange

Lorsque j'exécute mon application et que j'entre l'url "/ Admin/Pages/List", j'obtiens une erreur "La ressource est introuvable".

Quand je rentre/Pages/Liste, la méthode d'action est frappé mais la vue ne se trouve pas, parce que l'application est à la recherche dans les annuaires mauvais

~/Vues/Pages/List.aspx ~/Vues/Pages/List.ascx ~/Views/Shared/List.aspx ~/Views/Shared/List.ascx

La vue est dans/Admin/Pages/List.

Mon routage pour conf zone Admin:

public class AdminAreaRegistration : AreaRegistration 
{ 
    public override string AreaName 
    { 
     get 
     { 
      return "Admin"; 
     } 
    } 

    public override void RegisterArea(AreaRegistrationContext context) 
    { 
     context.MapRoute(
      "Admin_default", 
      "Admin/{controller}/{action}/{id}", 
      new { controller= "Pages",action = "Index", id = "" } 
     ); 
    } 
} 

Répondre

2

Avez-vous ajouté AreaRegistration.RegisterAllAreas(); au Global.asax.cs

Cela devrait fonctionner avant vos routes.MapRoute appels existants

Edit:

Il suffit de regarder ma zone d'administration et le routage ressemble à ceci:

context.MapRoute(
       "Admin_Default", 
       "Admin/{controller}/{action}/{id}", 
       new { action = "Index", id = UrlParameter.Optional } 
      ); 
+0

Oui, c'est là. Mais ça ne marche pas quand même. Est-ce que je comprends le routage, n'est-ce pas? L'URL pour les zones devrait ressembler à www.domain.com/Area/Controller/Action/Parameter? – user137348

+0

@ user137348: Cela semble correct ... –

+0

Peu importe. J'ai trouvé ce qui cause le comportement étrange. Plus tôt, j'ai copié le contrôleur de la racine à la zone en utilisant simplement glisser et déposer. L'espace de noms inchangé provoque le problème. Ma faute. Quoi qu'il en soit, merci pour votre temps.. – user137348