2010-03-16 7 views
0

J'ai une page enfant LoginContent.aspx qui contient un formulaire de connexion. Si l'utilisateur se connecte, il doit être redirigé vers ma page Welcome.aspx. Mais si j'appuie sur le bouton de connexion, la page se recharge, rien ne se passe. Le codebehind sur cette page est vide. LoginContent.aspx et Welcome.aspx sont des formulaires enfants de la même page maître. Je sais que je pourrais utiliser le contrôle de connexion asp.net, mais je veux plus de contrôle sur les choses.Le formulaire de connexion html ne fonctionne pas

Répondre

1

Vous ne pouvez pas avoir de formulaire imbriqué dans la page ASPX.

MISE À JOUR:

Depuis ASP.NET ne nous permet formulaire en ligne ne d'avoir sous forme multiple dans une seule page ASPX, donc afin de rendre cela fonctionne, procédez comme suit:

  1. Supprimer la balise form
  2. Ajouter un serveur runat à
  3. l'entrée effectuent sur le côté redirection du serveur

.

Username: <input type="text" name="username" size="15" runat=server /><br/> 
Password: <input type="password" name="passwort" size="15" runat=server /><br/> 
<input type="submit" value="Login" runat=server onclick="submit_onclick" /></p> 

Et dans le code derrière:

protected void submit_onclick(object sender, Event e) 
{ 
    // do some auth stuff here 
    Response.Redirect("~/welcome.aspx"); 
} 

Espérons que cela répondra à votre question .. :)

+0

Pourquoi pas? La page de connexion est correctement affichée dans le client, alors pourquoi cela ne fonctionnerait-il pas? AFAIK ASP.NET MVC qui utilise également des pages ASPX, s'appuie sur html au lieu de UserControls, comment vont-ils résoudre ce problème? Et que dois-je utiliser à la place? – codymanix

+0

L'exemple de code ci-dessus asp.net mvc? Si oui, alors ma déclaration n'est pas vraie. Seul asp.net webform ne vous permet pas d'avoir plusieurs formulaires à l'intérieur de la page aspx. – heisthedon

+0

si le code ci-dessus est asp.net mvc, pouvez-vous essayer ceci: supprimer "~" de l'action url? – heisthedon

0

Si votre balise <form> de votre LoginContent.aspx imbriqué dans votre <form runat="server"> Je voudrais essayer le déplacer de sorte qu'il se trouve en dehors du formulaire côté serveur et voir si cela fonctionne à partir de là.

Il peut également être utile de suivre les demandes HTTP dans le panneau Réseau de Firebug, pour que vous puissiez voir si la requête HTTP POST est réellement envoyée à /Welcome.aspx - cela peut vous aider à identifier exactement le problème. est.

+0

J'ai enlevé les étiquettes de forme internes de sorte que seuls les externes restent (ils sont dans la page maître), mais cela n'a pas aidé. Merci pour l'idée avec Firebug. Firebug dit que le clic sur soumettre les résultats dans un post à Loginpage.aspx, qui est correct jusqu'à présent, seulement que l'événement n'est pas appelé. – codymanix

+0

L'événement ne se déclenchera pas si vous n'utilisez pas de contrôles avec * runat = "server" * - vous devriez toujours pouvoir obtenir les valeurs soumises en utilisant Request.Form ["username"] et Request.Form ["password"] cependant :-) –

+0

Je mets runat = "server" dans ma balise d'entrée mais je ne travaille pas non plus .. – codymanix

Questions connexes