Meilleur auteur de réponses
Le Formulaire de connexion ne fonctionne pas

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
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
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 -
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
-
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
-
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 !