我没有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
如果它是相对的,然后将其转换为绝对,追加您的查询,然后返回相对部分的网址。否则按照你的方式处理它。 –