C#網頁跳轉辦法總結。本站提示廣大學習愛好者:(C#網頁跳轉辦法總結)文章只能為提供參考,不一定能成為您想要的結果。以下是C#網頁跳轉辦法總結正文
1、今朝在ASP.NET中頁面傳值共有這麼幾種方法:
1.Response.Redirect(http://www.百度.com,false); 目的頁面和原頁面可以在2個辦事器上,可輸出網址或絕對途徑。前面的bool值為能否停滯履行以後頁。 跳轉向新的頁面,原窗口被取代。" 閱讀器中的URL為新途徑。 :Response.Redirect辦法招致閱讀器鏈接到一個指定的URL。當Response.Redirect()辦法被挪用時,它會創立一個應對,應對頭中指出了 狀況代碼302(表現目的曾經轉變)和新的目的URL。閱讀器從辦事器收到該應對,應用應對頭中的信息收回一個對新URL的要求。這就是說, 應用Response.Redirect辦法時重定向操作產生在客戶端,總共觸及到兩次與辦事器的通訊(兩個往返):第一次是對原始頁面的要求, 獲得一個302應對,第二次是要求302應對中聲明的新頁面,獲得重定向以後的頁面。
2.Server.Transfer("Default2.aspx?name=zhangan",true); 目的頁面和原頁面可以在統一個辦事器上。 跳轉向新的頁面,原窗口被取代。 波球服裝論壇t.vhao.net閱讀器中的URL為原途徑不變。 默許情形下,Server.Transfer辦法不會把表雙數據或查詢字符串從一個頁面傳遞到另外一個頁面,但只需把該辦法的第二個參數設置成 Tb310True,便可以保存第一個頁面的表雙數據和查詢字符串。 同時,應用Server.Transfer時應留意一點:目的頁面將應用原始頁面創立的應對流,這招致ASP.NET的機械驗證檢討b310,,博球,博球網,內行心水,賽事推舉,賽事剖析,材料庫,足球賽事,籃球,NBA,賠率,比分,籃球數據,足球數據.
(Machine Authentication Check,MAC)以為新頁面的ViewState已被改動。是以,假如要保存原始頁面的表雙數據和查詢字符串聚集, 必需把目的頁面Page指令的EnableViewStateMac屬性設置成False。
3.Server.Execute("Default5.aspx?address=beijing); 目的頁面和原頁面可以在統一個辦事器上。 跳轉向新的頁面,再跳轉會原頁面。 閱讀器中的URL為原途徑不變。 當指定的ASPX頁面履行終了,掌握流程從新前往原頁面收回Server.Execute挪用的地位。 這類頁面導航方法相似於針對ASPX頁面的一次函數挪用,被挪用的頁面可以或許拜訪收回挪用頁面的表雙數據和查詢字符串聚集,所以要把 被挪用頁面Page指令的EnableViewStateMac屬性設置成False。
4.Response.Write("<script language='javascript'>window.open('aaa.aspx');</script>");_ 目的頁面和原頁面可以在2個辦事器上,可輸出網址或絕對途徑。 原窗口保存,別的新增一個新頁面。
5.Response.Write("<script language='javascript'>window.location='Default2.aspx'</script>"); 翻開新的頁面,原窗口被取代。
6.Response.Write("<script>window.showModalDialog('Default2.aspx')</script>");
7.Response.Write("<script>window.showModelessDialog('Default2.aspx')</script>");
(一)、showModalDialog和showModelessDialog有甚麼分歧?
showModalDialog:被翻開後就會一直堅持輸出核心。除非對話框被封閉,不然用戶沒法切換到主窗口。相似alert的運轉後果。b310,,博球,博球網,內行心水,賽事推舉,賽事剖析,材料庫,足球賽事,籃球,NBA,賠率,比分,籃球數據,足球數據 showModelessDialog:被翻開後,用戶可以隨機切換輸出核心。對主窗口沒有任何影響(最多是被蓋住一下而以。:P)
(二)、如何才讓在showModalDialog和showModelessDialog的超銜接不彈出新窗口?
在被翻開的網頁裡加上<base target="_self">便可以了。這句話普通是放在<html>和<body>之間的
2、假如在兩個頁面間須要年夜量的參數要傳傳遞,如數據查詢等頁面時,用1 - 6的辦法傳值及其未便,而第 7 種辦法確有一奇特的優勢!但應用該辦法時須要必定的設置,現簡略引見一下該辦法的應用方法:
以查詢數據頁面為例:
在查詢頁面中設置以下私有屬性(QueryPage.aspx):
public class QueryPage : System.Web.UI.Page { protected System.Web.UI.WebControls.TextBox txtStaDate; protected System.Web.UI.WebControls.TextBox txtEndDate; ... /// <summary> /// 開端時光 /// </summary> public string StaDate { get{ return this.txtStaDate.Text;} set{this.txtStaDate.Text = value;} } /// <summary> /// 停止時光 /// </summary> public string EndDate { get{ return this.txtEndDate.Text;} set{this.txtEndDate.Text = value;} } .... private void btnEnter_Click(object sender, System.EventArgs e) { Server.Transfer("ResultPage.aspx"); } }
在顯示查詢成果頁面(ResultPage.aspx):
public class ResultPage : System.Web.UI.Page { private void Page_Load(object sender, System.EventArgs e) { //轉換一下便可取得前一頁面中輸出的數據 QueryPage queryPage = ( QueryPage )Context.Handler; Response.Write( "StaDate:" ); Response.Write( queryPage.StaDate ); Response.Write( "<br/>EndDate:" ); Response.Write( queryPage.EndDate ); } }
3、假如有很多查詢頁面共用一個成果頁面的設置辦法:
在這類方法中症結在於“ QueryPage queryPage = ( QueryPage )Context.Handler; ”的轉換,只要轉換不依附於特定的頁面時便可完成。
假如讓一切的查詢頁面都繼續一個接口,在該接口中界說一個辦法,該辦法的獨一感化就是讓成果頁面取得構建成果時所需的參數,便可完成多頁面同享一個成果頁面操作!
1、先界說一個類,用該類放置一切查詢參數:
/// <summary> /// 成果頁面中要用到的值 /// </summary> public class QueryParams { private string staDate; private string endDate; /// <summary> /// 開端時光 /// </summary> public string StaDate { get{ return this.staDate;} set{this.staDate = value;} } /// <summary> /// 停止時光 /// </summary> public string EndDate { get{ return this.endDate;} set{this.endDate = value;} } }
2、接口界說:
/// <summary> /// 界說查詢接口。 /// </summary> public interface IQueryParams { /// <summary> /// 參數 /// </summary> QueryParams Parameters{get;} }
3、查詢頁面繼續IQueryParams接口(QueryPage.aspx):
/// <summary> ///查詢頁面,繼續接口 /// </summary> public class QueryPage : System.Web.UI.Page, IQueryParams { protected System.Web.UI.WebControls.TextBox txtStaDate; protected System.Web.UI.WebControls.TextBox txtEndDate; private QueryParams queryParams; ... /// <summary> /// 成果頁面用到的參數 /// </summary> public QueryParams Parameters { get { return queryParams; } } .... private void btnEnter_Click(object sender, System.EventArgs e) { //賦值 queryParams = new QueryParams(); queryParams.StaDate = this.txtStaDate.Text; queryParams.EndDate = this.txtEndDate.Text Server.Transfer("ResultPage.aspx"); } }
4、別外的頁面也如斯設置
5、吸收頁面(ResultPage.aspx):
public class ResultPage : System.Web.UI.Page { private void Page_Load(object sender, System.EventArgs e) { QueryParams queryParams = new QueryParams(); IQueryParams queryInterface; //完成該接口的頁面 if( Context.Handler is IQueryParams) { queryInterface = ( IQueryParams )Context.Handler; queryParams = queryInterface.Parameters; } Response.Write( "StaDate:" ); Response.Write( queryParams.StaDate ); Response.Write( "<br/>EndDate:" ); Response.Write( queryParams.EndDate ); } }
以上內容給年夜家引見了C#網頁跳轉辦法總結,願望年夜家愛好。