Comment masquer un paramètre de chaîne de requête dans l'url
J'ai un panneau de bar avec certains éléments. Quand je clic droit sur les éléments et si je sélectionne "ouvrir dans un nouvel onglet", j'ai besoin d'ouvrir le lien dans un nouvel onglet.
Pour eg. si ma page est "http:localhost/MyPage"
Ma grille est:
Nom
- abc
- bcd
- cde
Quand je clique sur le second point, la navigateUrl serait "http:localhost/MyPage/?Name=bcd"
Cela fonctionne bien.
Mais je veux cacher le nom dans l'url. Est-il un autre moyen, je peux passer le nom de la page suivante sans l'exposer dans l'url. Je pourrais utiliser les sessions, mais malheureusement, je ne peux pas écrire comme un code pour le menu contextuel par défaut.
- Pourquoi voudriez-vous cacher? Comme un utilisateur de puissance, il pourrait être un advantange de modifier l'URL directement pour obtenir l'effet désiré. E. g.
http://www.google.com/search?q=this+will+work+great
.
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
LinkButton
objets. Ils postback et puis vous pouvez rediriger les requêtes vers les pages de votre choix.ASPX:
C#:
Bien sûr, il sera très fastidieux si vous avez beaucoup de liens. Vous pouvez utiliser la grille (espérons que vous l'utilisez comme vous l'écrivez dans votre question) et les captures de la rangée d'événement avec le nom de la commande et de l'argument de la commande propriétés.
Pour masquer l'url dans addressbar du navigateur, vous devez faire de la réécriture d'URL. Pour en savoir plus sur la réécriture d'URL, veuillez visiter ces pages sur codeproject et msdn.
Vous pouvez définir un cookie de cette façon, la prochaine fois que l'utilisateur revient vous pourriez même les renvoyer à la même page (si vous voulais).
Vous pouvez trouver cet article utile au moment de décider si c'est une bonne option pour vous.
Si vous avez besoin de définir le cookie sur le client-côté, puis cet article devraient vous aider.
Comme @TheVillageIdiot dit, la réécriture d'url est une meilleure approche. Mais vous pouvez utiliser la croix-l'affichage de la page capacité ainsi. Check it out:
Balisage
Comme vous pouvez le voir dans l'extrait de code précédent, vous devez ajouter un champ caché pour stocker l'élément sélectionné par un simple javascript. Aussi j'ai défini une propriété, appelée
SelectedValue
pour obtenir la valeur du champ caché sur l'otherside.Code Derrière
Deuxième Page
Ajouter la directive suivante à la page de destination.
Enfin, vous avez accès à la page précédente via
PreviousPage
propriété dePage
classe.