我使用該方法構建的url:如何將Request.QueryString傳遞給Url.Action?
Url.Action("action", "controller");
我喜歡通過查詢字符串爲當前請求到該URL爲好。 類似以下(但不工作):
Url.Action("action", "controller", Request.QueryString);
轉換的查詢字符串來routevalues可能有以下擴展名:
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());
還有其他更好的方法嗎? Thx
如果查詢字符串包含具有相同鍵的兩個鍵/值,則會引發異常,這總是一種可能性,因爲某人可以在瀏覽器中更改查詢字符串 – 2012-08-01 18:07:33
謝謝,這個問題是一個非常有用的答案!什麼是'querystring.IsNull()'雖然?這是一個自定義的擴展嗎?因爲我沒有看到它。 – hofnarwillie 2012-09-13 18:09:17