http://metasapiens.com/PageMethods/intro.aspx
It's free and removes the drudgery of parsing querystring params, creating urls from parameters etc.
The problem
Let's take a simple example. You want to call a page that displays information about a customer. The page expects a customer ID. Let's say that ID is an integer.
Here is how a URL to call such a page would look like: http://myserver/Customer.aspx?CustID=12
If you're not the developer who created the page, how do you know the name of the parameter? How do you know the type of this parameter?
Either you have to look deep in the code of the page you want to invoke (do you always have that code at hand, by the way? Not so sure), or you look in the documentation related to that page (does such documentation exist? Is this documentation up-to-date? Did Joe update the documentation when he quickly renamed the parameter from CustID to CustomerID?).
This gives you an idea about the limitations coming with the default way of linking or redirecting to a page. But let me give you some more insight about other limitations:
you refer to a page by its file name (No check at compile time, so if you make a mistake, you'll know only when someone tries to access the page. This means that you're never sure what you deliver is 100% safe. When you realize you've made a mistake, it's late and you have to redeploy the application after fixing the problem)
you never know for sure what parameters or combinations of parameters each page expects
you have to know the exact name of each parameter
you pass parameters by concatenation of strings (this is work, code is not easy to read, and not nice)
you have to parse and convert parameters by yourself (in ASP.NET, parameters passed on URLs are available through Request.QueryString, only as strings)
a page must validate the parameters it receives (Check parameters are not null. Is the type of each parameter correct? Are the parameters within the range of valid values?)
It's free and removes the drudgery of parsing querystring params, creating urls from parameters etc.
The problem
Let's take a simple example. You want to call a page that displays information about a customer. The page expects a customer ID. Let's say that ID is an integer.
Here is how a URL to call such a page would look like: http://myserver/Customer.aspx?CustID=12
If you're not the developer who created the page, how do you know the name of the parameter? How do you know the type of this parameter?
Either you have to look deep in the code of the page you want to invoke (do you always have that code at hand, by the way? Not so sure), or you look in the documentation related to that page (does such documentation exist? Is this documentation up-to-date? Did Joe update the documentation when he quickly renamed the parameter from CustID to CustomerID?).
This gives you an idea about the limitations coming with the default way of linking or redirecting to a page. But let me give you some more insight about other limitations:
you refer to a page by its file name (No check at compile time, so if you make a mistake, you'll know only when someone tries to access the page. This means that you're never sure what you deliver is 100% safe. When you realize you've made a mistake, it's late and you have to redeploy the application after fixing the problem)
you never know for sure what parameters or combinations of parameters each page expects
you have to know the exact name of each parameter
you pass parameters by concatenation of strings (this is work, code is not easy to read, and not nice)
you have to parse and convert parameters by yourself (in ASP.NET, parameters passed on URLs are available through Request.QueryString, only as strings)
a page must validate the parameters it receives (Check parameters are not null. Is the type of each parameter correct? Are the parameters within the range of valid values?)