Интересный пример
http://stackoverflow.com/questions/5818065/how-to-pass-request-querystring-to-url-action
public static RouteValueDictionary ToRouteValues(this NameValueCollection col, Object obj) { var values = new RouteValueDictionary(obj); if (col != null) { foreach (string key in col) { //values passed in object override those already in collection if (!values.ContainsKey(key)) values[key] = col[key]; } } return values; } Then you can use it like so: Url.Action("action", "controller", Request.QueryString.ToRouteValues(new{ id=0 }));