Je sais que côté client (javascript) vous pouvez utiliser windows.location.hash mais ne pourriez quand même trouver d’accès du côté serveur.
Réponses
Trop de publicités?Nous avons eu une situation où nous avons besoin de conserver l'URL de hachage à travers ASP.Net post le dos. Tant que le navigateur n'envoie pas le hachage du serveur par défaut, la seule façon de le faire est d'utiliser du Javascript:
Lorsque le formulaire soumet, saisir la valeur de hachage (fenêtre.emplacement.de hachage) et de le stocker dans un serveur-côté caché champ de saisie de Mettre cela dans une DIV avec un id de "urlhash" afin que nous puissions le retrouver facilement plus tard.
Sur le serveur vous pouvez utiliser cette valeur si vous avez besoin de faire quelque chose avec elle. Vous pouvez même modifier si vous en avez besoin.
Sur la page de la charge sur le client, vérifier la valeur de ce champ caché. Vous voulez trouver par la DIV elle est contenue dans le auto-ID généré ne sera pas connu. Oui, vous pourriez faire quelques astuces ici .ClientID, mais nous avons trouvé qu'il est plus simple d'utiliser le wrapper DIV car il permet à tous ce Javascript pour vivre dans un fichier externe et être utilisé dans le générique de la mode.
Si le champ caché a une valeur valide, le définir comme le hachage de l'URL (fenêtre.locaion.hachage de nouveau) et/ou effectuer d'autres actions.
Nous avons utilisé jQuery pour simplifier la sélection du champ, etc... dans l'ensemble, il finit par être un peu de jQuery, les appels, l'un pour enregistrer la valeur, et un autre pour le restaurer.
Avant de soumettre:
$("form").submit(function() {
$("input", "#urlhash").val(window.location.hash);
});
Au chargement de la page:
var hashVal = $("input", "#urlhash").val();
if (IsHashValid(hashVal)) {
window.location.hash = hashVal;
}
IsHashValid() peut vérifier "undefined" ou d'autres choses que vous ne voulez pas gérer.
Aussi, assurez-vous d'utiliser $(document).prêt() de manière appropriée, bien sûr.
La RFC 2396 section 4.1:
Lorsqu'une référence URI est utilisé pour effectuer une récupération d'action sur la ressources identifiés, avec en option un identificateur de fragment, séparé de l'URI par un hachurage ( " # " ), se compose d'supplémentaire informations de référence pour être interprété par l'agent de l'utilisateur après l' la récupération d'action a été complété avec succès. En tant que tel, il n'est pas une partie de l'URI, mais est souvent utilisé en conjonction avec un URI.
(emphase ajoutée)