我正在使用该方法构建一个网址:
Url.Action("action","controller");
我喜欢传递当前请求的querystring到那个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",Request.QueryString.ToRouteValues());
有没有其他更好的方法?
谢谢
解决方法
扩展方法似乎是正确的,是要走的路。