URL Querystring - 查找,替换,添加,更新值?

sch*_*ner 14 c# url query-string

我们从另一家公司继承了一些C#代码作为项目的一部分,该公司执行URL重定向,根据需要修改现有查询字符串,更改项目值,添加新参数等.但问题是代码充其量只是错误,最终会复制查询字符串中的项目而不是正确更新它们.该代码适用于第一次通过,但在其他调用时,重复问题变得明显.

例如:MyPage.aspx?startdate = 08/22/09&startdate = 09/22/09

它不需要复制项目,而是需要使用新值(如果已存在)进行更新,或者如果不存在则添加.

是否有一个C#类或一组函数来处理查询字符串,允许一种简单的方法来访问和更新/添加解决这些问题的参数,而不是现在似乎在使用代码的盲添加方法?这需要能够处理可能始终存在或不存在的多个参数,并在后续调用中添加和更新.

我们将尽快使用现有逻辑,而不是在可能的情况下重新创建某些内容,以便以半标准方式快速解决此问题,以便将来进行可维护性和重用.

Rob*_*ine 27

是的我建议使用将查询字符串转换为集合 HttpUtility.ParseQueryString()

然后,您可以在从此集合重新创建查询字符串之前直接在集合中查找/添加/更新/替换值.

这应该可以更容易地发现重复.

  • 我可以想到一些代码方法,但它们不会真正适合评论框.这是StackOverflow - 问一个问题 - 我相信你会得到几个答案:D (2认同)
  • http://blog.leekelleher.com/2008/06/06/how-to-convert-namevaluecollection-to-a-query-string/ (2认同)