当前位置:  开发笔记 > 编程语言 > 正文

在C#中输出一个被操纵的QueryString

如何解决《在C#中输出一个被操纵的QueryString》经验,为你挑选了2个好方法。

使用以下代码我得到一个很好的格式化字符串:

Request.QueryString.ToString 

给我一些像:&hello = worldµsoft =糟透了

但是,当我使用此代码将集合克隆到另一个对象(相同类型)时,我从ToString()方法返回Type().

System.Collections.Specialized.NameValueCollection variables = new System.Collections.Specialized.NameValueCollection(Request.QueryString);
if (!string.IsNullOrEmpty(variables["sid"]))
    variables.Remove("sid");
Response.Write(variables.ToString());

是否有更整洁的方式输出它而不是手动查看和构建字符串?



1> 小智..:

HttpValueCollection是内部的,但您可以使用"var"声明它而不用反射器提取它.

var query = HttpUtility.ParseQueryString(Request.Url.Query);
query["Lang"] = myLanguage; // Add or replace param
string myNewUrl = Request.Url.AbsolutePath + "?" + query;


好主意!但是`var`在这里没有为你做任何事情,那只是虚拟方法调度.`NameValueCollection values = HttpUtility.ParseQueryString(...)`也可以正常工作.我还要添加评论来解释你在做什么.

2> Igal Tabachn..:

您还可以使用Reflector将HttpValueCollection类提取到您自己的类中,然后使用它.

推荐阅读
mobiledu2402851377
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有