Question

Je déconne avec ASP.NET MVC 2 Preview 2 et j'essaie de comprendre comment le routage fonctionne avec les zones, etc. Dans un seul projet d'implémentation de zones, je souhaite une zone nommée "admin".

J'essaie de pouvoir avoir des URLs comme celle-ci:

(root)/admin/apples/search
(root)/admin/apples/edit/3
(root)/admin/apples/add
(root)/admin/oranges/search
(root)/admin/oranges/edit/5
(root)/admin/oranges/add
(root)/admin

J'ai la zone créée. J'ai les contrôleurs créés avec leurs vues respectives, mais c'est le routage que je n'arrive pas à obtenir. Avez-vous des conseils sur la manière de réaliser un tel routage?

Je suis sûr que cela peut sembler extrêmement simple pour certains, mais je n’ai pas eu beaucoup de chance de trouver des exemples allant au-delà des éléments de base.

Merci!

Ajout à la question (25/10/2009) Je demande fondamentalement quelles routes et dans quel ordre dois-je m'installer dans la classe AreaRegistration de la zone? J'ai fait tout ce qui a été mentionné jusqu'à présent, mais sans résultat.

Était-ce utile?

La solution

Enregistrer des zones dans un seul projet

Vous devez ajouter le fichier routes.cs au dossier de la zone d'administration.

    using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace MvcAreasSingleProject.Areas.Admin
{
    public class Routes : AreaRegistration
    {
        public override string AreaName
        {
            get { return "admin"; }
        }

        public override void RegisterArea(AreaRegistrationContext context)
        {
            context.MapRoute(
                "admin_default",
                "admin/{controller}/{action}/{id}",
                new { controller = "Admin", action = "Edit", id = "" }
            );
        }
    }
}

Autres conseils

http://haacked.com/archive/2009 /07/31/single-project-areas.aspx

routes.MapAreaRoute("Forums", 
        "admin_area", 
        "admin/{controller}/{action}/{id}", 
        new { controller = "apples", action = "search", id = "" }, 
        new string[] { "Project.Areas.Admin.Controllers" });
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top