2009-08-17 7 views
0

J'essaie de récupérer la valeur de myID dans mon URL. Je teste cela en utilisant <% = Request.QueryString ["hotelid"]%>.Problèmes avec Request.QueryString. Lit le cache au lieu de l'URL

Cela ne fonctionne que la première fois que la page est chargée dans un nouveau navigateur ou si mon projet a été reconstruit. La chaîne de mon URL est typique: http://my/path/to/site/?hotelid=2.

Si j'essaie <% = Request.QueryString%>, j'obtiens également d'autres valeurs. Valeurs que je ne vois pas dans la chaîne URL.

Qu'est-ce qui me manque ici?

Mise à jour:
utilisant <% = Request.RawUrl%>, je reçois les résultats suivants:
/Util/NotFound.aspx?404; http://localhost/en/Tjenester/Hotellguiden-2/Hotel-informasjon/?hotelid=3

Je n'ai aucune idée de ce que le /Util/NotFound.aspx?404 est ou d'où il vient.

Mon URL ressemble à ceci:
http://localhost/en/Tjenester/Hotellguiden-2/Hotel-informasjon/?hotelid=2

Mise à jour 2: J'étudie actuellement si elle est EPiServer CMS qui utilise une sorte de mise en cache.

Mise à jour 3: Je l'ai résolu. EPiServer utilise EPnCachePolicyTimeout qui est à 1 heure. Mettre ceci à 0 (zéro) a résolu mon problème.

est aide vraiment parfois en train d'écrire aboutthe problème ici, parler « à haute voix » à ce sujet et le tour est joué :)

+0

Quelle valeur obtenez-vous pour la chaîne de requête? – rahul

+0

En utilisant <% = Request.RawUrl%>, j'obtiens /Util/NotFound.aspx?404;http://localhost/en/Tjenester/Hotellguiden-2/Hotel-informasjon/?hotelid=3 – Steven

+0

Pouvez-vous voir la page? dans le navigateur en donnant la même URL? – rahul

Répondre

3

Vous devez turn off caching ou ajouter vos noms de paramètres à la configuration d'attributs httpCacheVaryByParams ou overwrite the custom caching key method et faire diff sur tous les paramètre querystring.

+0

Ok, merci pour les liens. Pas sûr que j'aime l'approche d'avoir à ajouter des noms de variables au web.config comme je code le long! – Steven

+0

Pour EPiServer 5 R2 et plus tard, je toujours utiliser cette approche: En web.config: httpCacheExpiration = "0: 1: 0" HttpCacheability = "Public" httpCacheVaryByCustom = "jk" httpCacheVaryByParams = "besoins d'un -valeur-mais-non-utilisé » Dans le monde: chaîne public override GetVaryByCustomString (HttpContext contexte, chaîne personnalisé) { de context.Request.RawUrl de retour; } –

+0

De cette façon, il n'est pas nécessaire de spécifier chaque nom de paramètre. –

Questions connexes