Si j'ai http://mysite.com?abc=123&def=345, puis-je faire une boucle sur le chargement de la page et supprimer ces éléments? Il semble que Querystring soit une collection en lecture seule. Si la page est une publication, les données de la chaîne de requête sont périmées. Je voudrais nettoyer l'URL quand cela arrive? auriez vous des idées pour faire ça?Est-il possible de supprimer des éléments de la chaîne Querystring dans asp.net?
Répondre
Malheureusement, même si vous avez supprimé des éléments de la chaîne côté serveur, lorsque vous avez renvoyé la réponse, le navigateur ne s'en soucierait pas - il afficherait toujours l'URL d'origine. Le mieux que vous puissiez faire est de rediriger le navigateur vers une nouvelle URL avec les paramètres supprimés en émettant un Response.Redirect()
. Dans le cas contraire, pensez à modifier la requête pour utiliser POST au lieu de GET. Les paramètres n'apparaissent donc pas dans l'URL.
Quelques solutions ici:
How can i remove item from querystring in asp.net using c#?
Outputing a manipulated QueryString in c#
Vous devriez être en mesure d'extraire les valeurs, supprimer celles que vous ne voulez pas et re-construire la chaîne de requête. Ensuite, il suffit de rediriger vers la page avec les nouvelles valeurs?
Il peut être plus judicieux d'affecter une copie de queryString à un paramètre de page dans page_load si la requête n'est pas une publication. Apportez vos modifications à la copie et utilisez-la pour toute autre opération. Si vous devez conserver les modifications entre les charges, affectez la valeur modifiée à un champ de formulaire masqué.
protected void Page_Load(object sender, EventArgs e)
{
sring saveQueryString;
if (!IsPostBack)
{
saveQueryString = Request.QueryString.ToString(); // join here - I doubt .ToString() will return the expected a=1?b=2?c=3 string
// modify to your hearts content here...
hiddenFormField.Text = saveQueryString;
}
else
saveQueryString = Request.Form[hiddenFormField.Id];
}
qui est plus sur la fin de pseudo-code exécutable que, mais j'espère que ce sera assez bon pour des fins d'illustration.
- 1. Est-il possible de "supprimer" le style des éléments HTML?
- 2. Sécurité avec des valeurs QueryString dans Asp.net MVC
- 3. Authentification de formulaires ASP.NET via Querystring
- 4. Envoyer des données via QueryString avec ASP.NET
- 5. ASP.NET MVC - Réécriture de FormMethod.Get querystring?
- 6. Mon UrlRewrite IHttpModule supprimer ma deuxième QueryString
- 7. LINQ: Supprimer des éléments de IQueryable
- 8. Supprimer des éléments orphelins dans une hiérarchie
- 9. Envoyer chaîne avec QueryString dans le contrôle de répéteur dans ASP.net
- 10. Comment supprimer l'un des éléments dans Roles.GetAllRoles()
- 11. Hibernate: Meilleure façon de supprimer des éléments dans une collection
- 12. ASP.NET MVC - Obtenir Html.BeginForm() pour se rappeler des paramètres Querystring lors de la soumission via GET
- 13. ASP.NET MVC - Obtention de valeurs QueryString
- 14. Supprimer tous les éléments à l'application à proximité dans ASP.Net
- 15. Éléments personnalisés dans ASP.NET avec des éléments enfants personnalisés
- 16. Empêcher la transmission de la commande viewer ASP.NET dans querystring via le formulaire GET
- 17. ASP.NET MVC: routage url vs querystring
- 18. Remplacer les mots de querystring avec des expressions régulières
- 19. Quelle est la manière la plus efficace/élégante de supprimer des éléments d'une matrice dans MATLAB?
- 20. PHP Supprimer l'URL de la chaîne
- 21. Supprimer l'annonce de la chaîne html
- 22. T-SQL, Supprimer l'espace dans la chaîne
- 23. Publier sur une page, puis-je accéder aux valeurs de la chaîne querystring?
- 24. Supprimer des éléments spécifiques du cache de Django?
- 25. supprimer des éléments d'un HashSet tout Itération
- 26. Est-il possible d'inclure des éléments de bloc dans les éléments de la liste non-ordonnée posées horizontalement
- 27. C++: Supprimer tout le formatage HTML de la chaîne?
- 28. les différentes manières de supprimer des éléments choisis parmi System.Windows.Forms.ListBox
- 29. Supprimer la valeur des valeurs séparées par des virgules Chaîne
- 30. C# ASP.NET MVC: Dynamic Querystring Recherche
Pourquoi voulez-vous le nettoyer? Pour l'amour de l'apparence? S'il y a une raison programmatique, pensez à utiliser if (! IsPostback) dans vos gestionnaires d'événements pour faire la distinction entre l'original et la publication Page_Load(). –
Sérieusement, réfléchissez-y avant de passer à l'action. Bien que, comme les autres répondants l'ont souligné à juste titre, il existe des moyens d'y parvenir, vous subvertissez un mécanisme que Microsoft a délibérément mis en place et qui fait partie intégrante d'ASP.NET. Si c'est une question d'apparence, suivez la suggestion de @ womp d'utiliser POST vs GET. –