Я строю url используя метод:
Url.Action("action", "controller");
Мне нравится передавать запрос для текущего запроса в этот URL-адрес. Что-то вроде следующего (но это не работает):
Url.Action("action", "controller", Request.QueryString);
Преобразование QueryString в значения маршрута возможно со следующим расширением:
public static RouteValueDictionary ToRouteValues(this NameValueCollection queryString)
{
if (queryString.IsNull() || queryString.HasKeys() == false) return new RouteValueDictionary();
var routeValues = new RouteValueDictionary();
foreach (string key in queryString.AllKeys)
routeValues.Add(key, queryString[key]);
return routeValues;
}
С помощью метода расширения выполняется следующее:
Url.Action("action", "controller", Request.QueryString.ToRouteValues());
Есть ли другой лучший способ? спасибо