C# 中的Response.Redirect()和Server.Transfer()的传值方式?

2024-11-24 16:04:42
推荐回答(1个)
回答1:

弄清两者的区别就会清楚一点了, 用Redirect方法实际上是浏览器发了两次请求, Response.Redirect的时候, 服务器返回一个301的状态码和要跳转的那个目标页面地址给浏览器, 浏览器再重新请求目标页面, 所以只能用QueryString.
而Server.Transfer()是在一次请求内完成的。
如果说你想在一次请求的时候往Request.Form里面加东西的话,似乎是不行的。Request.Form是只读属性 。所以都不能用POST

至于传集合我觉得你真要做的话,可以把集合序列化成XML然后再POST(GET的话浏览器每次发送的请求URL的长度是有限的, 不能超过2000多个字符),然后接收端再反序列化 。
更经常的做法是吧集合放在SESSION里, 或者Cache里面。