我沒有Request
,我只有一個url字符串。此外,該網址可以是相對或絕對的。而且由於Uri和UriBuilder不支持相關網址,因此我可能必須手動執行此操作,除非有一個我不知道的技巧。這個方法在我的項目中可能會用到一千多行代碼,這就是爲什麼我想正確地做到這一點。添加查詢字符串如果不存在請求
下面的代碼將打破,如果一個相對URL傳遞:
public static string AddQueryStringIfNotExists(string url, string parameter, string value)
{
var uriBuilder = new UriBuilder(url);
var query = HttpUtility.ParseQueryString(uriBuilder.Query);
if (query[parameter] == null)
{
query[parameter] = value;
uriBuilder.Query = query.ToString();
}
return uriBuilder.ToString();
}
附:我很好,通過檢查我的參數是否出現在第一個?
後面,但是這需要處理幾個邊緣情況,我試圖避免的情況(如參數名稱包含在另一個參數中)
我想避免的絕對URL,因爲我最終會使用'Response.Redirect'中的輸出來自動處理相對的URL。此外,每當我有一個相對URL需要全面掃描我的項目時,我必須有選擇地通過域。 – yazanpro
如果它是相對的,然後將其轉換爲絕對,追加您的查詢,然後返回相對部分的網址。否則按照你的方式處理它。 –