Request["key"] vs Request.Params["key"] vs Request.QueryString["key"]
Solution 1:
I recommend Request.QueryString["key"]
. There isn't a lot of difference to Request["Key"]
for a query string but there is a big(er) difference if you are trying to get the value from ServerVariables
. Request["Key"]
looks for a value in QueryString
if null, it looks at Form
, then Cookie
and finally ServerVariables
.
Using Params
is the most costly. The first request to params creates a new NameValueCollection
and adds each of the QueryString
, Form
, Cookie
and ServerVariables
to this collection. For the second request on it is more performant than Request["Key"]
.
Having said that the performance difference for a couple of keys is fairly negligable. The key here is code should show intent and using Request.QueryString
makes it clear what your intent is.
Solution 2:
I prefer to use Request.QueryString["key"]
because it helps the code-reader know exactly where you are getting the data from. I tend not to use Request.Params["key"]
because it could refer to a cookie, query string and a few other things; so the user has to think a little. The less time someone needs to figure out what you are thinking, the easier it is to maintain the code.