从代码调用Web资源时的常见任务是构建查询字符串以包含所有必需参数.虽然无论如何都没有火箭科学,但是你需要注意一些漂亮的细节,&
如果不是第一个参数,编码参数等.
这样做的代码非常简单,但有点单调乏味:
StringBuilder SB = new StringBuilder();
if (NeedsToAddParameter A)
{
SB.Append("A="); SB.Append(HttpUtility.UrlEncode("TheValueOfA"));
}
if (NeedsToAddParameter B)
{
if (SB.Length>0) SB.Append("&");
SB.Append("B="); SB.Append(HttpUtility.UrlEncode("TheValueOfB")); }
}
Run Code Online (Sandbox Code Playgroud)
这是一个常见的任务,人们期望实用程序类存在,使其更加优雅和可读.扫描MSDN,我找不到一个 - 这让我想到了以下问题:
你知道做上述事情最干净的方式是什么?
我有这个网址:
site.fwx?position=1&archiveid=5000&columns=5&rows=20&sorting=ModifiedTimeAsc
Run Code Online (Sandbox Code Playgroud)
我需要的是能够将'rows'url param值更改为我指定的内容,比方说10.如果'rows'不存在,我需要将它添加到url的末尾并添加价值我已经指定(10).
我有一个ASP.NET页面,它在查询字符串中包含许多参数:
search.aspx?q=123&source=WebSearch
Run Code Online (Sandbox Code Playgroud)
这将显示搜索结果的第一页.现在,在该页面的呈现中,我想显示一组链接,允许用户跳转到搜索结果中的不同页面.我可以简单地通过追加做这个&page=1
或&page=2
等
它变得复杂的地方是我想保留原始页面中输入查询字符串的每个参数,除了我正在尝试更改的那个.其他组件使用的url中可能还有其他参数,我尝试替换的值可能已经定义过,也可能没有定义:
search.aspx?q=123&source=WebSearch&page=1&Theme=Blue
Run Code Online (Sandbox Code Playgroud)
在这种情况下,要生成到下一页结果的链接,我想更改page=1
为,page=2
同时保持查询字符串的其余部分不变.
有没有内置的方法来做到这一点,还是我需要手动完成所有的字符串解析/重组?