IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET MVC Discussion :

MVC4: Configurer la Route la plus courte


Sujet :

ASP.NET MVC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 60
    Par défaut MVC4: Configurer la Route la plus courte
    Bonjour,

    Dans le cadre de mon projet MVC4, je souhaite ajouter une route très courte, à savoir (j'ai modifié de manière générique les noms pour l'exemple):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
                routes.MapRoute(
                    name: "MaRoute",
                    url: "{varname}",
                    defaults: new { controller = "MonController", action = "MonAction", varname = UrlParameter.Optional }
                );
    Pour pouvoir utiliser par exemple l'url suivante sur mon site:

    Et là c'est le drame:

    Erreur du serveur dans l'application '/'.
    --------------------------------------------------------------------------------

    La ressource est introuvable.
    Description : HTTP 404. La ressource recherchée (ou l'une de ses dépendances) a peut-être été supprimée ou renommée ou bien elle n'est plus disponible temporairement. Vérifiez l'URL ci-après et assurez-vous qu'elle est correcte.

    URL demandée: /utilisateur
    Pourtant la configuration de routage passe bien.


    Y-a-t-il une exception de route non gérée dans ce cas? Existe-t-il une manière détournée d'utiliser cette route? M'y prends-je comme un manche?

    Par avance, merci de vos retours.

  2. #2
    Membre éprouvé Avatar de Olivier P.
    Homme Profil pro
    Développeur Front-End chez un éditeur logiciel
    Inscrit en
    Octobre 2012
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Front-End chez un éditeur logiciel
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2012
    Messages : 83
    Par défaut
    Bonjour,

    L'url doit être de type : .../Controller/Action/Paramêtre.

    Pour pouvoir vous affranchir de l'action, vous devez utiliser une action nommée "Index".
    Il me semble que par convention, il considère que c'est l'action par défaut, donc n'oblige pas la saisie.

    Votre route devient alors :

    defaults: new { controller = "MonController", action = "Index", varname = UrlParameter.Optional }

    Et votre URL : http:/MonSite/MonController

    Dans ce cas, tout ira bien.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 60
    Par défaut
    Merci Olivier pour la réponse.

    Donc d'après ce que j'ai compris, il n'est pas possible de définir une route sans placer dedans au moins le nom du controller?

    L'idée est d'afficher des profils utilisateurs avec une configuration de routage comme celle-ci:

    titi, tata et toto représentant des noms d'utilisateurs.

  4. #4
    Membre éprouvé Avatar de Olivier P.
    Homme Profil pro
    Développeur Front-End chez un éditeur logiciel
    Inscrit en
    Octobre 2012
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur Front-End chez un éditeur logiciel
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2012
    Messages : 83
    Par défaut
    Petite rectification dans mon explication, elle est incomplète et vous induit en erreur

    Les valeurs que vous mettez par défaut dans la route, forment une route (par défaut) qui permet de simplifier la structure de l'url.

    Exemple, avec une route par default: new { controller = "MonController", action = "Index", varname = UrlParameter.Optional }

    votre URL devient :
    http:/MonSite/MonController/MonAction/MonParam
    ou encore http:/MonSite/MonController/MonAction
    ou encore http:/MonSite/MonController
    ou encore http:/MonSite/

    Cela dit, les 3 dernières sont faisables car le param est optionnel et parce que le controller et l'action ont une valeur définit par défaut.

    Par contre, vous devez tout de même respecter la structure de la route définit.

    Donc, dans votre cas initial, http://monsite.com/utilisateur, ce qui bloque, c'est qu'il cherche un controller "utilisateur" qu'il ne trouve pas.

    En effet, il ne peut pas deviner que "Utilisateur" est un parametre puisqu'il s'attend à une structure Controller/Action/Param.

    Autrement dit, votre url peut et doit être du type :
    http:/MonSite/
    http:/MonSite/MonController
    http:/MonSite/MonController/MonAction
    http:/MonSite/MonController/MonAction/MonParam

    Je ne sais pas si c'est plus clair, mais en tout cas, c'est plus juste

    Par contre, autant on peut mettre un paramètre en optionnel, autant un Controller et une action, je doute sérieusement.

Discussions similaires

  1. Calcul de plus court chemin dans un graphe
    Par Elmilouse dans le forum Prolog
    Réponses: 6
    Dernier message: 21/03/2010, 20h26
  2. [algo] plus courts chemins (au pluriel !!)
    Par ADSL[fx] dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 18/01/2006, 14h40
  3. néophyte, faire une requête plus courte
    Par LE NEINDRE dans le forum Requêtes
    Réponses: 8
    Dernier message: 10/10/2005, 09h44
  4. algorithme de Ford (recherche chemin le plus court)
    Par abstraite dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 19/05/2005, 10h39
  5. Réponses: 2
    Dernier message: 21/03/2004, 18h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo