![]() |
Web Development »
ASP.NET »
Samples
Intermediate
License: The Code Project Open License (CPOL)
A small Class for simplifying the Work with URL ParametersBy Uwe KeimAn article describing a simple class that makes working with URL parameters a little bit easier. |
C#.NET 1.0, .NET 1.1, .NET 2.0, Win2K, WinXP, Win2003, DotGNU, ASP.NET, Visual Studio, Dev
|
|
Advanced Search Add to IE Search |
|
|
|
||||||||||||||||
![]()
(For the latest changes, please see the History section below)
If you are working with URLs from within ASP.NET you probably often need to read different URL parameters. E.g., you could read the value of the "name1" parameter out of the QueryString collection of your Page class (or, to be more precise, from the Request property of your Page class):
private void Page_Load(
object sender,
System.EventArgs e )
{
string value1 = Request.QueryString["name1"];
// ... Further processing of the value1 variable ...
}
In my projects I often need the ability to write URL parameters, e.g., for outputting a URL on a page or for redirecting to another page with the appropriate parameters. This article introduces a class QueryString which I wrote in order to simplify my life a little bit.
Before examining the QueryString class in more detail, first some examples of how to use it are shown.
Create a QueryString and simply let itself fill with the parameters of the current page:
private void Page_Load(
object sender,
System.EventArgs e )
{
// Let the object fill itself
// with the parameters of the current page.
QueryString qs = new QueryString();
// Read a parameter from the QueryString object.
string value1 = qs["name1"];
// Write a value into the QueryString object.
qs["name1"] = "This is a value";
// Redirect with the current content of the QueryString object.
// In this example, since the BeforeUrl property is not modified,
// it will redirect to the current page itself, but with the
// "name1" parameter set to the new value.
Response.Redirect( qs.All, true );
}
As you can see, you can simply modify a parameter's value by assigning it to the appropriate parameter name by using the [] operator. The All property returns the complete URL that is stored inside the QueryString object including the latest (possibly modified) parameters.
To remove a certain parameter from the QueryString object, call the RemoveParameter method, specifying the name of the parameter to remove:
private void Page_Load(
object sender,
System.EventArgs e )
{
// Let the object fill itself
// with the parameters of the current page.
QueryString qs = new QueryString();
// Read a parameter from the QueryString object.
string value1 = qs["name1"];
// Now remove the parameter.
qs.RemoveParameter( "name1" );
// This has the same effect as RemoveParameter() method:
qs["name1"] = null;
// ... Further processing of the value1 variable ...
}
The most common use of the class was already described in the previous section. It should be simple to use, n'est pas? Nevertheless, here is an (incomplete) overview of the most usable members:
The following constructors exists.
public QueryString() - Empty constructor, fills itself with the parameters of the current page (if any).
public QueryString( System.Web.UI.Page currentPage ) - Constructs with the parameters of the given page.
public QueryString( string url ) - Constructs with the parameters from the given URL.
public QueryString( Uri uri ) - Constructs with the parameters from the given URI. By using the following methods, you can achieve similar results as with the constructors, but after the object is already constructed.
public void FromUrl( System.Web.UI.Page currentPage ) - Fills with the parameters of the given page.
public void FromUrl( string url ) - Fills with the parameters from the given URL.
public void FromUrl( Uri uri ) - Fills with the parameters from the given URI. Use the following methods for further operations.
public bool HasParameter( string parameterName ) - Check whether a given parameter is present (i.e. is non-null and non-empty-string).
public void RemoveParameter( string name ) - Removes a parameter from the current parameter collection. Does nothing if the parameter is not present.
public void RemoveAllParameters() - Removes all parameters from the current parameter collection. Use the following properties for accessing various values.
public string this [string index] - Gets or sets a parameter value by the given parameter name. If the parameter does not exists, get returns string.Empty (i.e. not null).
public string BeforeUrl - Gets or sets the the "base" part of the URL returned by the All property. E.g. set this to "http://www.myserver.com/mypage.aspx".
public string All - Gets the complete URL that is currently stored inside the object. This is the value of the All property plus the current parameters. E.g. returns "http://www.myserver.com/mypage.aspx?name1=value1&name2=someOtherValue". In this small article I've shown you a class that simplifies the reading and writing of URL parameter values. For me, this class is around about approximately two years and helped me saving a lot of coding time (well, at least a bit...). Hopefully it is useful for you, too.
For questions, comments and remarks, please use the commenting section at the bottom of this article.
General
News
Question
Answer
Joke
Rant
Admin
|
PermaLink |
Privacy |
Terms of Use
Last Updated: 5 Jan 2005 Editor: Sumalatha K.R. |
Copyright 2004 by Uwe Keim Everything else Copyright © CodeProject, 1999-2009 Web18 | Advertise on the Code Project |