我们从另一家公司继承了一些 C# 代码作为项目的一部分,这家公司进行 URL 重定向,根据需要修改现有查询字符串、更改项目值、添加新参数等。然而,问题是代码充其量是错误的,最终会在查询字符串中复制项目而不是正确更新它们。该代码在第一次通过时有效,但在其他调用中,重复问题变得明显。
例如:MyPage.aspx?startdate=08/22/09&startdate=09/22/09
与其复制项目,不如用新值更新(如果它已经存在)或者添加(如果不存在)。
是否有用于处理查询字符串的 C# 类或函数集,允许一种简单的方法来访问和更新/添加绕过这些问题的参数,而不是现在似乎在代码中使用的盲目添加方法?这需要能够处理可能始终存在或可能不存在的多个参数,并在后续调用中添加和更新。
如果可能的话,我们宁愿使用现有的逻辑也不愿重新创建一些东西,以便以半标准的方式快速解决这个问题,以便将来进行维护和重用。
最佳答案
是的,我建议使用 HttpUtility.ParseQueryString()
将查询字符串转换为集合
然后您可以直接在集合中查找/添加/更新/替换值,然后再从此集合重新创建查询字符串。
这应该可以更容易地发现重复项。
关于c# - URL 查询字符串 - 查找、替换、添加、更新值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1163956/