加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-15 22:39:38 所属栏目:asp.Net 来源:网络整理
导读:我明白他们都不会改变客户端看到的URL.他们中有什么比其他人更喜欢吗? 我打算在Global.asax中的Application_BeginRequest中使用它,也可以在常规aspx页面中使用它. 解决方法 我认为Context.RewritePath()是更好的选择. 原因: Server.Transfer()每次都会抛出
我明白他们都不会改变客户端看到的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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读