Compte tenu url /Page.aspx?a=b&title=apples+%26+pears
, Request.Url
retourne /Page.aspx?a=b&title=apples+&+pears
Querystring la propriété url codée esperluette prématurément décodé dans les Request.Url
Notez que l'esperluette url codée dans la deuxième paire clé-valeur a été automatiquement décodé. Les autres caractères réservés codés par l'URL ne sont pas décodés automatiquement.
Est-ce que ce comportement est correct?
EDIT: Le problème est que la propriété Request.Url décode automatiquement l'esperluette codée lorsque je ne m'y attendais pas.
Réponse:string.Format("{0}://{1}{2}", Request.Url.Scheme, Request.Url.Host, Sitecore.Context.Request.RawUrl)
Merci pour votre réponse. Cela me semble contre-intuitif. Les valeurs Querystring ** ** ne doivent pas être auto-décodées. –
@Arnold Il existe une propriété RawUrl que vous pouvez utiliser si vous le souhaitez et si elle n'est pas décodée. – Aliostad
RawUrl est relatif, mais il m'a conduit à la bonne solution. J'ai marqué votre réponse comme acceptée. –