server.transfer 特點:
1:大家熟悉的一個特點,用server.transfer 跳轉到新頁面時,瀏覽器的地址是沒有改變的(因為重定向完全在服務器端進行,瀏覽器根本不知道服務器已經執行了一次頁面變換),有些場合需要這種效果。(但要注意一點,如果此時刷新頁面,瀏覽器便會問用戶是否“重試”發送表單,如果用戶點擊“是”,那么,表單中的數據被重新發送到服務器。如過發送表單中有類似向數據庫中插入一條記錄, 那么同一表單被多次加入到數據庫中)
2:在網上查了一下資料,基本上認為,相對於Response.Write,server.transfer更高效一些,因為重定向完全在服務器端進行,減少客戶端對服務器的請求
3: Server.Transfer只能夠轉跳到本地虛擬目錄指定的頁面,而Response.Redirect則沒有這個要求。
4:看到網上用 Server.Transfer在頁面間傳值,學習了一下,個人感覺用這個方法,在頁面間傳遞很多 參數的時候,是挺好用的,現在把他記錄下來。
例子:
Default4頁面
<div> <asp:TextBox ID="txtvalue" runat="server"></asp:TextBox> <asp:Button ID="Button1" runat="server" Text=跳轉" onclick="Button1_Click" /> </div>
后台代碼:
public string Name { get { return this.txtvalue.Text.Trim().ToString(); } } public int age { get { return 10; } } protected void Page_Load(object sender, EventArgs e) { } protected void Button1_Click(object sender, EventArgs e) { this.Server.Transfer("Default3.aspx");// }
Default3頁面
后台