+ Répondre à la discussion
Affichage des résultats 1 à 3 sur 3
  1. #1
    Candidat au titre de Membre du Club
    Inscrit en
    avril 2010
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : avril 2010
    Messages : 17
    Points : 10
    Points
    10

    Par défaut [MVC] Parametre optionnel dans les routes

    Bonjour à tous,

    Voilà je suis sur un projet en MVC, et j'ai personalisé mes routes. Pour le moment, tout se passe bien .

    Je voudrais en modifier une pour y inclure un paramètre optionnel et c'est à partir de ce moment, que j'aurai besoin de votre aide car c'est maintenant que ça ne marche plus

    Alors voici ma route de base :

    Code :
    1
    2
    3
    4
     routes.MapRoute(
                name: "Video",
                url: "{lang}/Video/{Name}",
                defaults: new { controller = "View", action = "Read" });
    Tout se passe bien, je peux accèder à ma page, par le lien :

    Code :
    http://localhost/fr/Video/test
    Maintenant, je voudrais que mon premier parametre (lang) soit optionnel pour que l'url d'au dessus marche mais que cette url marche aussi :

    Code :
    http://localhost/Video/test
    Donc je modifie ma route en :

    Code :
    1
    2
    3
    4
     routes.MapRoute(
                name: "Video",
                url: "{lang}/Video/{Name}",
                defaults: new { lang = UrlParameter.Optional,  controller = "View", action = "Read" });
    Mon premier lien marche toujours, mais c'est quand je veux y accèder sans mon paramètre langue, que ca ne marche pas.

    Je voudrais donc savoir, si c'est possible déja de mettre mon premier parametre en optionnel et si oui, vous avez une piste sur mon erreur ?

    Merci d'avance pour l'aide que vous pouvez m'apporter

  2. #2
    Membre à l'essai
    Inscrit en
    octobre 2007
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : octobre 2007
    Messages : 84
    Points : 22
    Points
    22

    Par défaut

    Bonsoir,

    il me semble que seul le dernier paramètre peut être "optional".

    Dans ton cas tu dois écrire tes routes de la sorte :

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     routes.MapRoute(
                name: "Video",
                url: "Video/{Name}",
                defaults: new { controller = "View", action = "Read" });
     
     routes.MapRoute(
                name: "Video",
                url: "{lang}/Video/{Name}",
                defaults: new { controller = "View", action = "Read" });
    Et dans le controlleur :

    Code :
    1
    2
    3
    4
    5
    6
     
            public ActionResult Read(String lang)
            {
     
                return View();
            }
    Le paramètre lang étant null si la requête a pour URL /app/Video/Test.

  3. #3
    Candidat au titre de Membre du Club
    Inscrit en
    avril 2010
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : avril 2010
    Messages : 17
    Points : 10
    Points
    10

    Par défaut

    Merci, je vais tester tout ça

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
  •