我明白他们都不会改变客户端看到的URL.他们中有什么比其他人更喜欢吗?
我打算在Global.asax中的Application_BeginRequest中使用它,也可以在常规aspx页面中使用它.
我打算在Global.asax中的Application_BeginRequest中使用它,也可以在常规aspx页面中使用它.
解决方法
我认为Context.RewritePath()是更好的选择.
原因:
原因:
Server.Transfer()每次都会抛出一个ThreadAbortException.调用Response.End()的结果.
有关详细信息,请阅读以下MS文章:
> ThreadAbortException Occurs If You Use Response.End,Response.Redirect,or Server.Transfer
> HttpServerUtility.Transfer Method on MSDN
更多信息:
Server.Transfer()不会像Response.Redirect()那样发送HTTP 302重定向命令.
根据HttpContext.RewritePath on MSDN,RewritePath()用于无Cookie会话状态.
另外,在另一个主题上,Server.Transfer()和Server.Execute()有很大的不同:
Server.Execute()将控件返回到初始页面之后立即调用它.
例如:
<div> test 1 <br/> <% Server.Execute("include.aspx?hello=ok"); %> test 2 <br/> </div>
输出:
test 1
content of include.aspx?hello=ok test 2