我很困惑哪一个更好或有效请求呼叫页面(第一页)和来电者页面(新页面)...
我注意到在这两种情况下,浏览器中的URL仍然是第一页URL(不刷新到新页面URL),因为不要求浏览器这样做.
任何评论明显....
Pra*_*ana 23
Orignal at:Server.Transfer和Server.Execute之间的区别
Server.Transfer和Server.Execute都是在Classic ASP 3.0中引入的(并且仍在ASP.NET中工作).
使用Server.Execute时,会将URL作为参数传递给它,并且控件将移动到此新页面.代码的执行发生在新页面上.一旦代码执行结束,控件就会在调用它之后返回到初始页面.但是,在Server.Transfer的情况下,它的工作方式非常相似,不同之处在于新页面本身的执行停止(意味着控件不会返回到调用页面).
在这两种情况下,浏览器中的URL仍然是第一个页面URL(不会刷新到新页面URL),因为浏览器没有被要求这样做.
小智 5
我知道这很旧,但当我在谷歌上搜索时,它是第一个或第二个命中。我做了一些测试并想发布结果。
我创建了一个有 2 个页面的网站。第一页上的页面加载包含代码..
try {
//Response.Redirect("~/WebForm2.aspx");
//Server.Transfer("~/WebForm2.aspx");
//Server.Execute("~/WebForm2.aspx");
//Server.TransferRequest("~/WebForm2.aspx");
string strTry = "Try";
} catch (Exception ) {
string strCatch = "Catch";
} finally {
string strFinally = "Finally";
}
Run Code Online (Sandbox Code Playgroud)
它为每个人所做的事情的顺序是非常有趣的......
命令 序列 重定向调用,捕获(ThreadAbortException),最后加载页面2 转移调用,加载页面2,捕获(ThreadAbortException),最后 执行调用、加载第 2 页、尝试(继续)、最后 TransferRequest 调用,尝试(继续),最后加载页面 2
.. 因此,了解您希望事情发生的顺序可能会有所帮助。
就我个人而言,我喜欢在下一页的代码开始之前完成当前代码的想法。因此,无论是 Redirect 还是 TransferRequest,尽管对于后者,如果您确实希望它不执行 try 块的其余部分,您可能必须在调用下方添加一个“return”。
| 归档时间: |
|
| 查看次数: |
36308 次 |
| 最近记录: |