Server.Transfer与Context.RewritePath

Lea*_*hen 13 asp.net url-rewriting

我知道他们都不会更改客户端看到的URL.是否有任何东西使其中一个优于另一个?
我打算在Global.asax的Application_BeginRequest中使用它,也可以在常规的aspx页面中使用它.

net*_*tos 9

我认为Context.RewritePath()是更好的选择.原因:

Server.Transfer()ThreadAbortException每次都抛出一个.打电话的结果Response.End().

有关更多详细信息,请阅读以下MS文章:

更多信息:
Server.Transfer()不会发送HTTP 302重定向命令Response.Redirect().

根据MSDN上的HttpContext.RewritePath,RewritePath()用于无cookie会话状态.

此外,在不同的主题上,Server.Transfer()并且Server.Execute()是非常不同的:

Server.Execute() 在调用它之后立即将控制权返回到初始页面.

例如:

<div>
    test 1 <br/>
    <% Server.Execute("include.aspx?hello=ok"); %>
    test 2 <br/>
</div>
Run Code Online (Sandbox Code Playgroud)

输出:

测试1
include.aspx的内容?hello = ok
test 2