何时使用Response.Redirect& Asp.net中的Server.Transfer [英] When will use Response.Redirect & Server.Transfer in Asp.net

查看:61
本文介绍了何时使用Response.Redirect& Asp.net中的Server.Transfer的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我何时应该在Asp.net中使用 server.Transfer() Response.Redirect()



什么是最好的编程实践。





谢谢

Maruthi

When should i use server.Transfer() and Response.Redirect() in Asp.net

What is the best programming Practices.


Thanks
Maruthi

推荐答案

Response.Redirect,重定向发生在客户端浏览器上,而Server.Transfer只需更改焦点页面在同一个应用程序中。 Response.Redirect 回发和重定向页面的生命周期结束。 Server.Transfer仍将上一页保留在内存中,可以通过上一页属性访问。



这里是一个示例显示Server.Transfer仍然将上一页保留在内存中。



有一个简单的界面



Response.Redirect, the redirection happens on the client browser, while Server.Transfer simply change focus between the pages in the same application. Response.Redirect postback and the life cycle of the redirecting page ends. Server.Transfer still keeps the previous page in memory and can be accessed through the previous page property.

Here is an example shows Server.Transfer still keeps the previous page in memory.

Have a simple interface

public interface IMarker
{
    string TestString { get; set; }
}





在第1页实现此接口并设置测试字符串的值。在按钮点击事件处理程序中,它传输页面。





At page1 implement this interface and set the value for the test string. At a button click event handler it transfers the page.

public partial class _Default : System.Web.UI.Page,IMarker
{
    protected void Page_Load(object sender, EventArgs e)
    {
        TestString = "Hello world";
    }
    public string TestString { get; set; }
    protected void Button1_Click(object sender, EventArgs e)
    {
        Server.Transfer("~/Default2.aspx");
    }
}





在页面2即Default2.aspx中,您可以访问此属性,该属性仍然存在在内存中。





In the page 2 i.e Default2.aspx you can access this property which is still resides in memory.

public partial class Default2 : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        IMarker page = (IMarker)this.PreviousPage;
        Response.Write(page.TestString);
    }
 }







希望这能解释服务器传输的工作原理。当简单重定向需要或重定向到不属于此应用程序的URL时,必须使用响应重定向。 Response.Redirect进入往返页面1到浏览器到第2页,其中传输直接从页面1移动到页面到服务器端本身,但它仍然将页面1保存在内存中。所以根据你的要求选择你的。



祝你好运




Hope this explains how server tranfer works. Response redirect has to be used when simple redirection needs or redirect to a url which is not belong to this application. Response.Redirect goes a round trip page 1 to browser to page 2, where as transfer straightly move from page 1 to page to from the server side itself, but it still holds the page1 in memory. So choice is yours according to your requirement.

Good luck


我们需要发送时使用server.Transfer()它的参数如:



We used server.Transfer() when we need to send parameters with it like:

Server.Transfer("~/MemberProfile.aspx?UserID="+UserID.ToString())







但我们在没有参数时使用了Response.Redirect():








but we used Response.Redirect() when there is no parameters needed:


Response.Redirect("~/MemberProfile.aspx")

Response.Redirect()

可以从一台服务器跳转(导航),即Response.Redirect(www.google.com);



但是



can jump (navigates) from one server to another i.e., Response.Redirect("www.google.com");

but

Server.Transfer()

仅在同一服务器内导航。



navigates within the same server only.

Response.Redirect()

需要多次往返,所以它很少与

takes many round trips so it is little bit slower in comparison with

Server.Transfer()





希望这可以解决你的疑虑。



Hope this might clear your doubts.


这篇关于何时使用Response.Redirect& Asp.net中的Server.Transfer的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆