none
Le Formulaire de connexion ne fonctionne pas RRS feed

  • Question

  • Salut,

     

    J'ai un petit soucis avec le formulaire de connexion. En effet, lui ainsi que le formulaire de register son inclu de mon index.cshtml (asp.net 4 mvc3 razor template). Lorsque je tente de me loguer, le formulaire ne s'exécute pas. par contre si je vais a l'adresse Account/LogOn/ le formulaire fonctionne.

     

    Comment ça se fait et comment le corriger?

     

     

    Meilleures salutations

    mercredi 22 décembre 2010 16:52

Réponses

  • Bonjour,

    Quel est le résultat obtenu ? Pour un problème de rendu, je commence toujours par "Afficher la source" dans le navigateur pour voir quel est le code HTML généré. Le code HTML de ce formulaire ne serait-il pas dans une balise "head" au lieu d'être dans une balise "body" ?


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".
    • Marqué comme réponse kiwi-ch jeudi 23 décembre 2010 23:02
    jeudi 23 décembre 2010 13:05
    Modérateur

Toutes les réponses

  • Bonjour,

    Lorsque je tente de me loguer, le formulaire ne s'exécute pas
    Pouvez-vous être plus explicit ? Quelle erreur obtenez vous ?

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte .NET/Consultant/Formateur chez Winwise
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5
    mercredi 22 décembre 2010 18:52
    Modérateur
  • Bonsoir,

     

    Il n'y a aucune erreur, il ne démarre tout simplement pas. Voici ce qui se passe:

    dans: _layout.cshtml j'ai:

    @Html.Partial("_isLogOnPartial")

    Se dernier contient le code suivant:

    @if(Request.IsAuthenticated) {
      //Du code html de mise en page de fonctions
    }
    else {
      <div id="profilLogin">
        @Html.Partial("_LogOnPartial")
      </div>
      <div id="profilRegister">
        @Html.Partial("_RegisterPartial")
      </div>
    }
    
    

    Ainsi _LogOnPartial contient:

    @model liveworked.Models.LogOnModel
    
    <script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
    <script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
    
    @Html.ValidationSummary(true, "Login was unsuccessful. Please correct the errors and try again.")
    
    @using (Html.BeginForm()) {
      <div>
        <fieldset class="login">
          <legend>Connexion</legend>
    
          <div class="editor-label">
            @Html.LabelFor(m => m.UserName)
          </div>
          <div class="editor-field">
            @Html.TextBoxFor(m => m.UserName)
            @Html.ValidationMessageFor(m => m.UserName)
          </div>
    
          <div class="editor-label">
            @Html.LabelFor(m => m.Password)
          </div>
          <div class="editor-field">
            @Html.PasswordFor(m => m.Password)
            @Html.ValidationMessageFor(m => m.Password)
          </div>
    
          <div class="editor-label">
            @Html.CheckBoxFor(m => m.RememberMe)
            @Html.LabelFor(m => m.RememberMe)
          </div>
    
          <p>
            <input type="submit" class="button" value="Connexion" />
          </p>
        </fieldset>
      </div>
    }
    
    

    et _registerPartial:

    @model liveworked.Models.RegisterModel
    
    <script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
    <script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
    
    @using (Html.BeginForm()) {
      @Html.ValidationSummary(true, "Account creation was unsuccessful. Please correct the errors and try again.")
      <div>
        <fieldset class="register">
          <legend>S'enregistrer</legend>
    
          <div class="editor-label">
            @Html.LabelFor(m => m.UserName)
          </div>
          <div class="editor-field">
            @Html.TextBoxFor(m => m.UserName)
            @Html.ValidationMessageFor(m => m.UserName)
          </div>
    
          <div class="editor-label">
            @Html.LabelFor(m => m.Email)
          </div>
          <div class="editor-field">
            @Html.TextBoxFor(m => m.Email)
            @Html.ValidationMessageFor(m => m.Email)
          </div>
    
          <div class="editor-label">
            @Html.LabelFor(m => m.Password)
          </div>
          <div class="editor-field">
            @Html.PasswordFor(m => m.Password)
            @Html.ValidationMessageFor(m => m.Password)
          </div>
    
          <div class="editor-label">
            @Html.LabelFor(m => m.ConfirmPassword)
          </div>
          <div class="editor-field">
            @Html.PasswordFor(m => m.ConfirmPassword)
            @Html.ValidationMessageFor(m => m.ConfirmPassword)
          </div>
    
          <p>
            <input type="submit" class="button" value="S'enregistrer" />
          </p>
        </fieldset>
      </div>
    }
    
    

    Se sont pourtant ces mêmes codes qui sont appellé dans Account/LogOn/ et Account/Register/ comme le prouve les codes suivant:

    @Html.Partial("_LogOnPartial")
    
    @Html.Partial("_RegisterPartial")
    

    Les formulaires imbriqué dans mon header sont donc les mêmes codes, et lorsque je tante de valider le formulaire (me loguer) il semble y avoir un postback, mais rien ne se passe. Je suis donc un peu surpris que voir que le code ne fonctionne pas normalement dans le header mais normalement dans le "body" via l'adresse Account/LogOn/

     

    Meilleures salutations

    mercredi 22 décembre 2010 23:09
  • Bonjour,

    Quel est le résultat obtenu ? Pour un problème de rendu, je commence toujours par "Afficher la source" dans le navigateur pour voir quel est le code HTML généré. Le code HTML de ce formulaire ne serait-il pas dans une balise "head" au lieu d'être dans une balise "body" ?


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".
    • Marqué comme réponse kiwi-ch jeudi 23 décembre 2010 23:02
    jeudi 23 décembre 2010 13:05
    Modérateur
  • Bonjour,

    Tellement pris par ce bug "bizarre" je n'ai pas pensé à comparer les deux sources (une fois de la page index et une fois de la page logOn), maintenant ça fonctionne la solution résidait dans le Html.BeginForm ou j'ai simplement rajouter .BeginForm("LogOn/Register", "Account") (le / pour signifier les 2 portions de code.

     

    Merci à vous.

     

    Meilleures salutations !

     

    jeudi 23 décembre 2010 23:02