第一种情况:两个页面之间要进行大量数据传递的设置方法: 【关键点: 需求:页面A和页面B之间要传递多个值(X1,X2,……)。A传值,B接收 1、在A中定义所有要传递的值的属性,然后使用Server.Transfer("B.aspx")进行页面跳转 2、在B中,定义一个A类型的变量C,然后将Context.Handler显示转换成A类型赋值给变量 3、通过C.X1,C.X2……来取得传递的值 】 IndexPage.aspx页面 <form runat="server"> <div> <input id="Text1" type="text" runat="server"/> <input id="Text2" type="text" runat="server"/> <input id="Button1" value="传值" type="button" runat="server" onserverclick="ok_ServerClick"/> </div> </form> IndexPage.aspx.cs后台代码: public string Name { get { return Text1.Value; } } public string Pass { get { return Text2.Value; } } public void ok_ServerClick(object sender, EventArgs e) { //页面跳转 Server.Transfer("ResultIndex.aspx"); } ResultPage.aspx.cs后台代码: 接收数据 protected void Page_Load(object sender, EventArgs e) { indexPage ind = (indexPage)Context.Handler; //Context.Handler显示转换成IndexPage类型的//获得实例化的句柄 string name = ind.Name; string pass = ind.Pass; txt.Value = "用户名:" + name + "-----密码:" + pass; } 第二种情况:多个查询页面共用一个结果页面的设置方法: 【注意点: 1、将要查询参数都定义在一个类P里面 2、定义一个接口,该接口中只有一个方法。P返回类型的方法 3、让要查询页面实现这个接口IXXX,在里面创建一个P类对象,给里面的需要的属性赋值 4、在接收页面,实例化一个P对象,申明一个接口变量 判断实例化句柄是不是接口类型(Context.Handler is IXXX) 如果是,就将实例化句柄赋给接口变量,在调用接口里面的方法赋给P的实例化对象。 最后,用实例化对象就可以取值了 】 第一步:先定义一个类:LoginParams【里面定义的是要传递的参数的属性】 public class LoginParams { public string Name { set; get; } public string Pass { set; get; } } 第二步:定义一个接口:ILogin。里面写一个获得LoginParams类实例的方法 interface ILogin { LoginParams loginp { get; } //定义一个返回类型是LoginParams类的方法 } 第三步:在发送数据的页面实现ILogin接口: public partial class indexPage : System.Web.UI.Page,ILogin { //定义一个参数类的变量 private LoginParams lp; protected void Page_Load(object sender, EventArgs e) { } //实例化类对象 lp = new LoginParams(); //给参数赋值 lp.Name = Text1.Value; lp.Pass = Text2.Value; //页面跳转 Server.Transfer("ResultIndex.aspx"); } //实现接口中的方法 public LoginParams loginp { get { return lp; } } } 第四步:在接收数据的页面做判断在进行数据接收: public partial class ResultIndex : System.Web.UI.Page { LoginParams lp = new LoginParams(); ILogin ilogin = null; protected void Page_Load(object sender, EventArgs e) { if(Context.Handler is ILogin){ ilogin =(ILogin)Context.Handler; lp = ilogin.loginp; } txt.Value = lp.Name + "___" + lp.Pass; } } 【前端页面设置:】 IndexPage.aspx页面 <form runat="server"> <div> <input id="Text1" type="text" runat="server"/> <input id="Text2" type="text" runat="server"/> <input id="Button1" value="传值" type="button" runat="server" onserverclick="ok_ServerClick"/> </div> </form>