web-dev-qa-db-fra.com

Comment configurer des zones dans ASP.NET MVC3

Est-ce que quelqu'un sait comment configurer des zones dans ASP.NET MVC3. J'ai lu un article sur les domaines dans ici . Mais cet article n'est pas basé sur MVC3. Dans MVC3, il n'y a pas de fonction nommée MapRootArea dans RouteCollection routes qui se trouve dans Global.asax

routes.MapRootArea("{controller}/{action}/{id}", 
                 "AreasDemo", 
                  new { controller = "Home", action = "Index", id = "" });

Lorsque je crée une nouvelle zone à l'aide de MVC3, j'ai une classe de cette zone héritée de AreaRegistration et ressemble à ceci: (ici Blogs est le nom de la zone)

public class BlogsAreaRegistration : AreaRegistration
{
    public override string AreaName
    {
        get
        {
            return "Blogs";
        }
    }

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

Quelqu'un pourrait-il m'aider à configurer la zone dans MVC3? Tout type de lien serait également utile.

36
Imrul

Faites un clic droit sur votre projet web et sélectionnez Ajouter -> Zone ... Tapez ensuite le nom de la zone et Visual Studio s'occupe du reste qui est de générer toutes les classes nécessaires. Par exemple, l'enregistrement de zone peut ressembler à ceci:

public class AreasDemoAreaRegistration : AreaRegistration
{
    public override string AreaName
    {
        get
        {
            return "AreasDemo";
        }
    }

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

et en Application_Start de votre Global.asax tout ce dont tu as besoin c'est:

AreaRegistration.RegisterAllAreas();
40
Darin Dimitrov

Vous pouvez avoir le même nom de contrôleur à la racine et dans la zone, il vous suffit de le définir.

Dans votre global.asax, ajoutez la dernière ligne du routes.maproute comme indiqué ci-dessous

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

ajoutez également le nom du contrôleur dans votre fichier ares/????? AreaRegistration.cs

 context.MapRoute(
        "Membership_default",
        "Membership/{controller}/{action}/{id}",
         new { controller= "Home", action = "Index", id = UrlParameter.Optional }
      );
5
shamshir

veuillez trouver ci-dessous l'image montre comment configurer la zone en mvc.enter image description here

1
user1089766