Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 13 sur 13
  1. #1
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : avril 2011
    Messages : 13
    Points : 4
    Points
    4

    Par défaut Problème de routing

    Bonjour,

    J'ai suivi le petit tuto sur le routing (http://dotnet.developpez.com/mvc/mvc...-custom-route/)
    mais je ne comprend toujours pas je fais exactement pareil que l'exemple et ça ne marche pas!

    Voila le contenu de ma méthode RegisterRoutes dans Global.asax.cs
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    routes.MapRoute(
                    "RoutingTest", 
    				"test/{test}",
                    new { controller = "Home", action = "Test", test=UrlParameter.Optional }      
                );
     
                routes.MapRoute(
                    "Default",                                              // Route name
                    "{controller}/{action}/{id}",                           // URL with parameters
                    new { controller = "Home", action = "Index", id = "" }  // Parameter defaults
                );
    Cette méthode est bien appelée dans Application_Start().

    Voila le code de mon HomeController:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    public class HomeController : Controller
        {
            public ActionResult Index()
            {
                return View();
            }
     
            public ActionResult Test(string test)
            {
                if (test != null)
                {
                    ViewBag.message = test;
                }
                return View();
            }
    }
    Si tape l'URL "http://localhost:56218/home/test" mon action est bien appelée alors que si je tape "http://localhost:56218/test" ou "http://localhost:56218/home/test/blabla", l'action n'est pas appelée.
    ça fait des heures que je cherche je ne comprend pas ce qui ne va pas, j'ai pourtant l'impression d'avoir bien compris comment fonctionne le routing

    Merci d'avance pour vos réponse je déprime la!

  2. #2
    Membre actif
    Homme Profil pro Denis Huvelle
    Développeur .NET
    Inscrit en
    novembre 2011
    Messages
    62
    Détails du profil
    Informations personnelles :
    Nom : Homme Denis Huvelle
    Âge : 24
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : novembre 2011
    Messages : 62
    Points : 150
    Points
    150

    Par défaut

    Hello,

    Quand tu dis que l'action n'est pas appelée, tu as vérifié en mettant un break point dessus ? Car tu ne devrais pas avoir de problème...

    Avec une URL telle que "/test/blabla" ton action "Test" sera appelée et le paramètre "test" vaudra "blabla". Par contre avec une URL comme "http://localhost:56218/home/test/blabla", l'action "Test" sera bien appelée mais le paramètre "test" sera null car cette route a un paramètre optionnel qui s'appelle "id" mais pas de paramètre appelé "test".

    J'espère que ça te débloquera un peu !

  3. #3
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : avril 2011
    Messages : 13
    Points : 4
    Points
    4

    Par défaut

    Ha pardon ce n'est pas "http://localhost:56218/home/test/blabla" que j'ai testé mais bien "http://localhost:56218/test/blabla" (erreur de copier-coller).

    Oui j'ai bien sûr mis des break point pour tester.

    Du coup toujours bloqué.

  4. #4
    Membre actif
    Homme Profil pro Denis Huvelle
    Développeur .NET
    Inscrit en
    novembre 2011
    Messages
    62
    Détails du profil
    Informations personnelles :
    Nom : Homme Denis Huvelle
    Âge : 24
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : novembre 2011
    Messages : 62
    Points : 150
    Points
    150

    Par défaut

    Citation Envoyé par koenigsbier Voir le message
    Ha pardon ce n'est pas "http://localhost:56218/home/test/blabla" que j'ai testé mais bien "http://localhost:56218/test/blabla" (erreur de copier-coller).

    Oui j'ai bien sûr mis des break point pour tester.

    Du coup toujours bloqué.
    J'essaye "/test/blabla" avec le même code que toi et ça fonctionne très bien

  5. #5
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : avril 2011
    Messages : 13
    Points : 4
    Points
    4

    Par défaut

    J'essaye "/test/blabla" avec le même code que toi et ça fonctionne très bien
    Hein sérieusement? moi ça retourne un 404, et c'est pas une histoire de cache ou quoi...
    Ha mais la je suis encore plus déprimé qu'avant, pourquoi chez toi ça marcherai et pas chez moi!

  6. #6
    Membre actif
    Homme Profil pro Denis Huvelle
    Développeur .NET
    Inscrit en
    novembre 2011
    Messages
    62
    Détails du profil
    Informations personnelles :
    Nom : Homme Denis Huvelle
    Âge : 24
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : novembre 2011
    Messages : 62
    Points : 150
    Points
    150

    Par défaut

    Peux-tu uploader une archive de ton projet ? S'il ne contient rien de sensible ou du code que tu ne veux pas partager bien sûr

  7. #7
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : avril 2011
    Messages : 13
    Points : 4
    Points
    4

    Par défaut

    Citation Envoyé par Denis Huvelle Voir le message
    Peux-tu uploader une archive de ton projet ? S'il ne contient rien de sensible ou du code que tu ne veux pas partager bien sûr
    voila le lien dropbox. https://www.dropbox.com/sh/lm4s1emkqhv17ht/Todc92krYk
    Merci beaucoup Denis

  8. #8
    Membre actif
    Homme Profil pro Denis Huvelle
    Développeur .NET
    Inscrit en
    novembre 2011
    Messages
    62
    Détails du profil
    Informations personnelles :
    Nom : Homme Denis Huvelle
    Âge : 24
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : novembre 2011
    Messages : 62
    Points : 150
    Points
    150

    Par défaut

    Hello,

    Le problème était assez simple : tu as rajouté

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    public static void RegisterRoutes(RouteCollection routes)
            {
     
                routes.MapRoute(
                    "RoutingTest",
                    "test/{test}",
                    new { controller = "Home", action = "Test", test = UrlParameter.Optional }
                );
     
                routes.MapRoute(
                    "Default",                                              // Route name
                    "{controller}/{action}/{id}",                           // URL with parameters
                    new { controller = "Home", action = "Index", id = "" }  // Parameter defaults
                );
     
     
            }
    Dans ton Global.asax.cs et n'est jamais utilisé alors que tu as gardé

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    protected void Application_Start()
            {
               /* AreaRegistration.RegisterAllAreas();
     
                WebApiConfig.Register(GlobalConfiguration.Configuration);
                FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);*/
                RouteConfig.RegisterRoutes(RouteTable.Routes);
               /* BundleConfig.RegisterBundles(BundleTable.Bundles);
                AuthConfig.RegisterAuth();*/
            }
    Avec RouteConfig.RegisterRoutes(RouteTable.Routes); non commenté qui se contentait d'enregistrer la "route par défaut" d'ASP.NET MVC.

    Je te conseille donc de supprimer ton RegisterRoutes du Global.asax.cs et de t'occuper des routes dans RouteConfig.cs

  9. #9
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : avril 2011
    Messages : 13
    Points : 4
    Points
    4

    Par défaut

    Ha MERCI !!!

    je croyais que RouteConfig.RegisterRoutes appellait la méthode RegisterRoutes dans mon Global.asax mais en fait ce n'est pas la même!

    Je préfère continuer a enregistrer mes routes dans Global.asax, je trouve que c'est plus simple et rapide a trouver pour enregistrer mes routes.

    Encore merci Denis!

  10. #10
    Membre actif
    Homme Profil pro Denis Huvelle
    Développeur .NET
    Inscrit en
    novembre 2011
    Messages
    62
    Détails du profil
    Informations personnelles :
    Nom : Homme Denis Huvelle
    Âge : 24
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : novembre 2011
    Messages : 62
    Points : 150
    Points
    150

    Par défaut

    Citation Envoyé par koenigsbier Voir le message
    Ha MERCI !!!

    je croyais que RouteConfig.RegisterRoutes appellait la méthode RegisterRoutes dans mon Global.asax mais en fait ce n'est pas la même!

    Je préfère continuer a enregistrer mes routes dans Global.asax, je trouve que c'est plus simple et rapide a trouver pour enregistrer mes routes.

    Encore merci Denis!
    Comme tu le sens ;-) Content d'avoir pu t'aider !

  11. #11
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : avril 2011
    Messages : 13
    Points : 4
    Points
    4

    Par défaut

    Par contre comportement très étrange

    Quand je tape dans l'URL /test/blabla SANS appuyer sur entrer juste en écrivant ça dans l'URL et bien je rentre dans mon action test!!!!

    Alors que si j'écris /test ou /test/ rien ne se passe.

    Je redis bien que je n'envoie réellement aucune requette car je n'appuie pas sur entrer.

  12. #12
    Membre actif
    Homme Profil pro Denis Huvelle
    Développeur .NET
    Inscrit en
    novembre 2011
    Messages
    62
    Détails du profil
    Informations personnelles :
    Nom : Homme Denis Huvelle
    Âge : 24
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : novembre 2011
    Messages : 62
    Points : 150
    Points
    150

    Par défaut

    Et avec un autre navigateur ?

  13. #13
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    avril 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : avril 2011
    Messages : 13
    Points : 4
    Points
    4

    Par défaut

    Ha oui étrange ça ne fait ça qu'avec chrome. (Firefox, IE, et Opéra ça ne la fait pas)

    Bon je vais utiliser firefox du coup, au pire si je ne trouve pas la réponse sur le web je créerai un autre topic.

    Bonne soirée Denis et encore merci

+ Répondre à la discussion
Cette discussion est résolue.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •