网站访问量比较大
假设当前页面是AA.aspx
AA.aspx 里面执行 Server.Transfer("xx.aspx");
访问 AA.aspx?action=abc
到了 xx.aspx 接收 action 参数 发现 错误了 不是abc ,是其他的,而且一直变
xx.aspx 接收到的参数 和实际的不对,错乱了
AA.aspx 里面执行 Server.Transfer("xx.aspx");
这个地方应该是:
AA.aspx 里面执行 Server.Transfer("xx.aspx?action=abc");
吧
更改了下,发现问题仍然没有变化,这个 Server.Transfer 怀疑不能用
Server.Transfer(RootPath + "xx.aspx" + Request.Url.Query);
我错了,不是
Server.Transfer 的原因
我使用了 微软的那个URLRewrite
接收到的参数发生了变化
伪静态规则如:
<RewriterRule>
<LookFor>~/zt/(\w+)/</LookFor>
<SendTo>
<![CDATA[/zt.aspx?action=default&key=$1]]>
</SendTo>
</RewriterRule>
URL如:www.xxx.com/zt/accc/
发现接收到的这个 key 发生了变化 很是奇怪
知道原因了
我在头部加了个 <%@ OutputCache Duration="60" VaryByParam="none" %> 去掉之后就好了
对.net 经验还是少啊,缺乏系统的学习,不知道有什么书可以推荐的,我想系统 学习下 .net
@foxidea:
园子里大牛写的:《ASP.NET本质论》《你必须知道的.NET》都不错,可以看看
@artwl: 好,我先买本 本质论看看
Server.Transfer是在服务端将同一个请求转发给另一个页面处理,不需要另外传参数。
Server.Transfer("xx.aspx"); 是正确的写法。
@dudu: 学习了,Server.Transfer用的少,不知道不需要处理参数
用Response.Redirect()试试
试试:Server.TransferRequest("xx.aspx");