Request.QueryString – Parameter entfernen

Neulich stand ich vor einem Problem. Ich musste die Request.QueryString Collection auswerten und brauche einen bestimmten Schlüssel nicht. Request.QueryString ist aber ReadOnly und kann nur mit einem neuen Response weiter verarbeitet werden.

// 
NameValueCollection coll = Request.QueryString;
 
// remove
if (!String.IsNullOrEmpty(coll["gridAction"]) && coll["gridAction"] == "batchAction")
{
    // SCHLÄGT FEHL!!!! => Exception, weil ReadOnly
    coll.Remove("gridAction");
}

Statt in einer Schleife die Collection auszulesen, bin ich auf die statische Methode ParseQueryString aus dem Objekt HttpUtility gestoßen:

 
public static NameValueCollection ParseQueryString(
	string query
)
 
public static NameValueCollection ParseQueryString(
	string query,
	Encoding encoding
)

liefert auch eine Collection zurück, die aber nicht ReadOnly ist.

Beispiel:

// 
NameValueCollection coll = HttpUtility.ParseQueryString(Request.QueryString.ToString());
 
// remove
if (!String.IsNullOrEmpty(coll["gridAction"]) && coll["gridAction"] == "batchAction")
{
    coll.Remove("gridAction");
}

Habt Ihr noch andere Anregungen, Ideen, Lösungsvorschläge?

In diesem Sinne

Related Posts: