0 votes

ASP.NET : Lecture des valeurs des variables de formulaire dans la page d'action du formulaire de recherche

J'ai un site web où je veux implémenter une fonction de recherche. J'ai donc ajouté le code ci-dessous pour avoir une boîte de recherche sur ma page HTML

Dans Results.aspx, je veux lire la valeur que l'utilisateur a entrée dans la boîte de texte txtSearchKey. Quelle est la meilleure façon de faire cela? J'ai utilisé

 string strKey = Request.Form["txtSearchKey"].ToString();

Mais cela lance une exception de référence nulle. S'il vous plaît, conseillez-moi

Je ne veux pas avoir toutes les pages en ASP.NET. Je veux seulement avoir la page de résultats en ASP.NET

Merci d'avance

4voto

patmortech Points 7482

Pourrait être parce que vous n'avez pas un attribut NOM sur le champ de texte. C'est la valeur qui est utilisée comme clé dans la collection Request.Form. Un champ d'entrée sans attribut de nom ne sera pas soumis, je pense.

par exemple :

0voto

Canavar Points 29161

Vous pouvez obtenir votre champ txtSearchKey de cette manière :

string strKey = PreviousPage.Request.Form["txtSearchKey"].ToString();

Mais, au lieu d'utiliser l'action de formulaire pour transmettre votre recherche à une autre page, vous pouvez utiliser un bouton avec la propriété PostBackUrl comme ceci :

Parce qu'en ASP.NET, il n'est pas autorisé d'avoir plus d'un formulaire.

0voto

Horo Points 126

Y a-t-il une raison pour laquelle vous n'utilisez pas

form runat="server"

et ensuite faites glisser un champ de texte et un bouton dans ce formulaire. Ensuite double-cliquez sur le bouton et écrivez le code que vous voulez.

Si vous voulez le faire à votre manière, vous devez donner un nom="txtMySearchKey" à votre champ de texte pour que cela fonctionne

0voto

Dan Diplo Points 16133

La manière dont vous abordez les choses n'est pas vraiment la manière de travailler dans les formulaires web ASP.NET. La méthode préférée consiste à utiliser des contrôles serveur asp.net et des événements pour abstraire le processus que vous essayez d'accomplir. Par exemple, votre formulaire devrait ressembler vraiment à ceci (notez l'attribut runat="server" qui vous permet de référencer les contrôles de manière programmable):

Ensuite, dans votre code-behind, vous traiteriez l'événement ButtonSubmit_Click de la manière suivante pour vous permettre de récupérer la valeur du textbox TxtSearchKey:

protected void ButtonSubmit_Click(object sender, EventArgs e)
{
    string strKey = TxtSearchKey.Text;
}

Consultez l'exemple Quickstart pour le contrôle TextBox pour plus d'informations.

0voto

dnts2012 Points 108

Ne pas utiliser .toString() après Request.form... cela ne renverra pas une référence nulle après cela.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X