asp.net – Server.Transfer vs. Context.RewritePath

前端之家收集整理的这篇文章主要介绍了asp.net – Server.Transfer vs. Context.RewritePath前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我明白他们都不会改变客户端看到的URL.他们中有什么比其他人更喜欢吗?
我打算在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

猜你在找的asp.Net相关文章