Retrieving parameters from the query string in the URL in .Net
Here is a nice easy way to get the individual parameter values from the URL, returning either a NameValueCollection (System.Collections.Specialized.NameValueCollection HttpRequestBase.QueryString) of all parameters in the query string, or a string value of a particular named parameter.
Return a NameValueCollection of all parameters
In a controller
var parameters = HttpContext.Request.QueryString;
In a view
var parameters = HttpContext.Current.Request.QueryString;
In an attribute (filter)
public class MyAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
var parameters = filterContext.HttpContext.Request.QueryString;
...
}
}
Return a string of an individually named parameter from the query string
In a controller
var value = HttpContext.Request.QueryString["valueName"];
In a view
var value = HttpContext.Current.Request.QueryString["valueName"];
In an attribute (filter)
public class MyAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
var value = filterContext.HttpContext.Request.QueryString["valueName"];
...
}
}
Note
When requesting a named parameter, if the named parameter does not exist it will return null (rather than causing an exception).
if (HttpContext.Request.QueryString["valueName"] == null)
{
// valueName does not exist in the query string
}
