更改GET / POST变量的值

时间:2013-01-25 14:11:44

标签: c# asp.net post get

我确信我看起来很简单,但我不记得如何改变“GET”变量的价值来挽救我的生命。

例如,假设我有网址www.food.com/food.aspx?foodType=Healthy

我知道Request.QueryString["foodType"]可用于检索值,但如果我想说,请将“Healthy”更改为“Unhealthy”,如何更改帖子上的值背部?

我现在正在为我的按钮使用点击事件,但我仍然坚持要更改“foodType”的值。我尝试使用Request.QueryString.Add("foodType", "UnHealthy");,但这不起作用。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

我不确定您的用例是什么,但您无法修改该集合。正如@Grant所说,该集合是只读的。

如果你使用HttpRequest的来源,它会像这样创建QueryString集合:

new HttpValueCollection(_queryStringText, true, true, Encoding.Default); 

第二个参数将集合设置为只读。

答案 1 :(得分:0)

据我所知,你做不到;该集合是只读的,仅在将响应作为原始请求的副产品返回时存在。您可以使用Response.Redirect(url),其中url是原始网址,其值已更改 - 然后这将重新发出请求,服务器将有机会“使用”新变量并为用户提供服务结果(指向新URL,即使页面相同)。