2009-10-14 7 views
0

Nous avons le code suivant qui renvoie la valeur "3" bien qu'aucune valeur ne soit passée comme chaîne de requête. Est-il possible que le "id" soit bloqué dans la mémoire du serveur (puisqu'il n'est pas spécifique à l'utilisateur) ou "id" est une valeur spéciale. Des idées?Page.Request.QueryString a une valeur bien qu'aucun n'ait été passé à la page

if (Page.Request.QueryString["id"] != null) 
{ 
Page.Trace.Write("Query String Key Found"); 
ListItemID = HttpContext.Current.Request.QueryString["id"]; 
} 

Ceci est dans une partie Web SharePoint 2007.

Répondre

0

Si la partie Web est sur la page à laquelle vous avez accédé en cliquant sur un élément de liste de la page précédente; vous verriez l'identifiant de cet élément de liste.

0

Il ya probablement un post (ou GET) avec des paramètres quelque part, qui vous est caché. Les Querystrings sont les variables GET passées et il n'y a pas de "coincé" ou de "mémoire du serveur".

Utilisez un outil tel que HTTPAnalyzer ou Fiddler pour analyser le trafic HTTP. Cela vous montrera qui fait quelles demandes. Bien que ce soit probablement l'ID du contrôle sur lequel vous cliquez depuis que vous êtes dans Sharepoint.

+0

Lorsque j'efface tout mon cache et que j'ouvre un nouveau navigateur et que j'accède à la page aspx, la chaîne de requête a une valeur même si je la mets spécifiquement à la main. – PapaDaniel

+0

Où réside le code? Est-ce dans la page principale? Ou est-ce dans un contrôle référencé à partir de la page? Si c'est dans un contrôle référencé depuis la page, faites un "Afficher la source" sur votre code HTML et consultez l'URL de votre composant. Il doit y avoir un paramètre "id" dans cette URL. –

0

Efface le cache du navigateur.

+0

Le cache du navigateur n'a rien à voir avec le HttpRequest –

+0

@Mircea, je le sais. Mais un cache de navigateur complet peut provoquer toutes sortes de vaudou, en particulier lorsque vous travaillez sur des composants WebPart dans SharePoint. – IrishChieftain

0

Habituellement, quand une partie Web est ajoutée, tous les paramètres disponibles pour l'entrée reçoivent une valeur par défaut, par exemple, ajouter une forme de données à une page vide et la lier à une liste. Ensuite, ouvrez la source de la page. Vous voyez ici une série de liaisons de paramètres, qui à leur tour peuvent être liées à des chaînes de requête. Pourriez-vous si votre partie Web a reçu une valeur par défaut pour ListItemId? Ou est-ce que vous êtes en train de déboguer et d'intervenir dans ce morceau de code particulier et que la variable id querystring contient réellement 3? Si oui, je suis d'accord avec l'une des autres réponses, utilisez Fiddler pour vérifier combien d'appels http sont faits lorsque vous ouvrez la page.

Questions connexes