78 votes

Comment vérifier que Request.QueryString a une valeur spécifique ou non en ASP.NET ?

Tengo un error.aspx page. Si un utilisateur arrive sur cette page, le chemin d'erreur sera récupéré dans le fichier page_load() en utilisant la méthode URL Request.QueryString["aspxerrorpath"] et cela fonctionne bien.

Mais si un utilisateur accède directement à cette page, une exception sera générée car aspxerrorpath n'est pas là.

Comment puis-je vérifier que aspxerrorpath est là ou pas ?

126voto

BrokenGlass Points 91618

Vous pouvez simplement vérifier null :

if(Request.QueryString["aspxerrorpath"]!=null)
{
   //your code that depends on aspxerrorpath here
}

37voto

Oded Points 271275

Vérifier la valeur du paramètre :

// .NET < 4.0
if (string.IsNullOrEmpty(Request.QueryString["aspxerrorpath"]))
{
 // not there!
}

// .NET >= 4.0
if (string.IsNullOrWhiteSpace(Request.QueryString["aspxerrorpath"]))
{
 // not there!
}

Si elle n'existe pas, la valeur sera null s'il existe, mais n'a pas de valeur, il s'agira d'une chaîne vide.

Je pense que ce qui précède répondra mieux à vos besoins qu'un simple test de null comme une chaîne vide est tout aussi mauvais pour votre situation spécifique.

13voto

MarianoC Points 31

Pour vérifier si une QueryString est vide, il faut utiliser Request.QueryString.HasKeys propriété.

Pour vérifier si la clé est présente : Request.QueryString.AllKeys.Contains()

Vous pouvez ensuite obtenir la valeur de ist et effectuer tous les autres contrôles que vous souhaitez, tels que isNullOrEmpty, etc.

10voto

shapiro yaacov Points 1740

Vous pouvez également essayer :

if (!Request.QueryString.AllKeys.Contains("aspxerrorpath"))
   return;

8voto

peer Points 11386
string.IsNullOrEmpty(Request.QueryString["aspxerrorpath"]) //true -> there is no value

Retournera s'il y a une valeur

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