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 :

Ouvrir vue via bouton


Sujet :

ASP.NET MVC

  1. #1
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 236
    Points : 133
    Points
    133
    Par défaut Ouvrir vue via bouton
    Bonjour à tous,

    je débute en développement web et je dois faire un client léger pour une application lourde. J'ai de bonnes compétences en .NET mais plus sur des appli lourdes.

    Ma question est toute bête mais je suis bloqué, sur ma page index.cshtml j'ai un bouton connexion qui doit ouvrir la vue connexion contenant les textbox user et mot de passe mais je n'arrive pas à faire le lien entre le bouton et la vue.

    Voici le code de la vue

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    @{
        ViewBag.Title = "Connexion";
    }
     
    <p>
         <input type="submit" value="Connexion" />
    </p>
    et voici le code du contrôleur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    public class HomeController : Controller
        {
     
            public ActionResult Index()
            {
                return View();
            }
     
            public ActionResult About()
            {
                return View();
            }
     
            public ActionResult Connexion()
            {
                return View();
            }
     
     
        }
    Ce n'est pas la méthode Action Result Connexion qui permet d'appeler la vue ?

    Merci pour vos réponses
    La Solution AGILE de Cartographie et d'Urbanisation des Systèmes d'Information éditée et développée par la société AB+ SOFTWARE
    https://www.abplussoftware.fr

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,

    Essaies ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    &lt;input type="button" value="Connexion" onclick="window.location = 'Home/Connexion'" /&gt;

  3. #3
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 236
    Points : 133
    Points
    133
    Par défaut
    merci ça fonctionne
    La Solution AGILE de Cartographie et d'Urbanisation des Systèmes d'Information éditée et développée par la société AB+ SOFTWARE
    https://www.abplussoftware.fr

  4. #4
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 236
    Points : 133
    Points
    133
    Par défaut
    autre petite question qui me permettra de bien avancer, comment renvoyer une liste à la page web ?

    je m'explique, quand je valide l'user et le mot de passe, une méthode me renvoi une List<string> que j'aimerais afficher sur la page suivante, comment la passer en paramètre ? faut-il créer quelque chose dans le modèle, j'aimerais après faire un foreach avec des balises td et tr

    Merci d'avance
    La Solution AGILE de Cartographie et d'Urbanisation des Systèmes d'Information éditée et développée par la société AB+ SOFTWARE
    https://www.abplussoftware.fr

  5. #5
    Invité
    Invité(e)
    Par défaut
    Une fois que tu récupères le résultat de ta méthode qui te renvoie une collection List<string>, tu as plusieurs solutions :
    • tu affectes le résultat dans une propriété dynamique de ton ViewBag
    • tu l’insères dans le dictionnaire ViewData
    • tu l'affectes dans une propriété que tu auras déjà créée dans ton ViewModel ou dans ton Model.


    Dans tous les cas, c'est dans ta vue que tu parcours la liste. Dans les 2 premiers cas tu dois "caster" la donnée au type attendu. Dans le dernier cas, si ta vue est bien typée sur le Model ou le ViewModel alors là pas de problème

  6. #6
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 236
    Points : 133
    Points
    133
    Par défaut
    merci pour la réponse mais je n'y arrive pas. Voila ce que j'ai fait :

    Dans le model j'ai crée une classe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public class RoleModel
        {
            [Display(Name = "Role")]
            public List<String> ListeRoles { get; set; }
        }
    Puis dans mon contrôleur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public ActionResult Connexion(LogOnModel model, RoleModel model2)
            {
                bool test;
                bool test2;
     
                test = ech.Initialisation1();
                test2 = ech.Connexion(model.UserName, model.Password);
     
                model2.ListeRoles = ech.ProposerRoles();
     
                return View("Roles", model2.ListeRoles);
            }
    la méthode ProposerRoles renvoi une List<string>

    et enfin j'ai crée une vue Roles fortement typée en utilisant RoleModel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    @model Test.Models.RoleModel
     
    @{
        ViewBag.Title = "Roles";
        Layout = "~/Views/Shared/_Layout.cshtml";
    }
     
    <h2>Roles</h2>
     
    @foreach (var item in Model.ListeRoles)
        {
            <tr>
                <td>@item</td>
            </tr>
        }
    et voici l'erreur que j'ai :
    The model item passed into the dictionary is of type 'System.Collections.Generic.List`1[System.String]', but this dictionary requires a model item of type 'Test.Models.RoleModel'
    La Solution AGILE de Cartographie et d'Urbanisation des Systèmes d'Information éditée et développée par la société AB+ SOFTWARE
    https://www.abplussoftware.fr

  7. #7
    Invité
    Invité(e)
    Par défaut
    Remplaces cette ligne return View("Roles", model2.ListeRoles); par return View("Roles", model2);.
    Remarques que je n'ai pas mis model2.ListeRoles

  8. #8
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 236
    Points : 133
    Points
    133
    Par défaut
    encore merci, c'était vraiment une bétise !!! mais c'est ma première appli mvc en dotnet donc je suis un peu perdu complet
    La Solution AGILE de Cartographie et d'Urbanisation des Systèmes d'Information éditée et développée par la société AB+ SOFTWARE
    https://www.abplussoftware.fr

  9. #9
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 236
    Points : 133
    Points
    133
    Par défaut
    Dernière question, ce que je ne comprends pas trop c'est la navigation.

    Ma vue role se charge correctement avec ma liste, je choisi un role et j'ai un bouton valider. Quand je clique sur le bouton valider, il me relance la méthode ActionResult de la vue précédente. comment cela fonctionne-t-il ?
    La Solution AGILE de Cartographie et d'Urbanisation des Systèmes d'Information éditée et développée par la société AB+ SOFTWARE
    https://www.abplussoftware.fr

  10. #10
    Invité
    Invité(e)
    Par défaut
    Le bouton Valider dont tu parles est-il le même que celui cité précédemment ?
    Si oui tu seras toujours redirigé vers la page Home/Connexion.
    Si non peux-t-on voir comment tu l'as défini dans le cshtml ?

  11. #11
    Membre habitué
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 236
    Points : 133
    Points
    133
    Par défaut
    en fait j'ai suivi ton premier conseil plus haut et ça a marché mais j'ai vraiment du mal à avancer, c'est comme ça qu'on apprend...

    Dans ma view role, j'ai une listbox :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    <select name="roles" id="roles">
     
        @foreach (var item in Model.ListeRoles)
        {
            string role = item;
            string[] chainetemp = role.Split('|');
     
            <option value=@chainetemp[0]>@chainetemp[1]</option>   
        }
     
        @{
     
        }
    </select>
     
    <p>
        <input type="button" value="Connexion" onclick="window.location = 'Roles'" />
    </p>
    J'aimerais récupérer la valeur de la listbox sélectionné par l'utilisateur dans mon contrôleur. Faut-il que dans le modele ou est défini le List<string> je définisse un nouveau paramètre et que je fasse model.paramètre = ... ?
    La Solution AGILE de Cartographie et d'Urbanisation des Systèmes d'Information éditée et développée par la société AB+ SOFTWARE
    https://www.abplussoftware.fr

  12. #12
    Invité
    Invité(e)
    Par défaut
    Je t'ai répondu dans l'un de tes posts que t'as créé pour ce type de problème.

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

Discussions similaires

  1. Ouvrir un fichier Word via bouton de commande sous Access
    Par adri891 dans le forum VBA Access
    Réponses: 8
    Dernier message: 03/01/2013, 09h58
  2. Ouvrir une URL via bouton ?
    Par Jihzz dans le forum VB.NET
    Réponses: 2
    Dernier message: 14/12/2012, 08h26
  3. Réponses: 1
    Dernier message: 26/01/2006, 17h04
  4. Réponses: 2
    Dernier message: 15/06/2005, 23h56
  5. [FireBird] Accéder à une vue via Excel
    Par Vonotar dans le forum Débuter
    Réponses: 1
    Dernier message: 07/12/2004, 09h31

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