ASP.NET页面传值的方法

From:Refresh-air

在面试的时候,经常会遇到这样的问题,其实我们会对其中的几种方法比较熟悉,因为项目中经常使用。但是要全面的回答ASP.NET中页面传值的方式,估计往往很难全面。
一.
 使用QueryString变量
    QueryString是一种非常简单也是使用比较多的一种传值方式,但是它将传递的值显示在浏览器的地址栏中,如果是传递一个或多个安全性要求不高或是结构简单的数值时,可以使用这个方法。

         Response.Redirect( "target.aspx?param1=hello&param2=hi ") 
        接收页面:   string   str   =   Request.QueryString["param1"]; 
                               string   str1   =  Request.QueryString["param2];
二.使用Cookie对象变量(Cookie是存放在客户端的)
       设置Cookie:   HttpCookie cookie_name = new HttpCookie("name");
                         cookie_name.Value = Label1.Text;
                         Reponse.AppendCookie(cookie_name);
    
          获取Cookie:
                       string name= Request.Cookie["name"].Value.ToString();
 
三. 使用Session变量(session是存放在服务器端的)
  设置Session:      Session["name"] ="hello";
        获取Session:        string name = Session["name"].ToString();
四.使用Application 对象变量
  Application对象的作用范围是整个全局,也就是说对所有用户都有效。此种方法不常使用,因为Application在一个应用程序域范围共享,所有用户可以改变及设置其值,故只应用计数器等需要全局变量的地方。 
        设置Application :    Application["name"] = ="hello";
        获取Application :     string   name = Application["name"].ToString();
五. PostBackUrl()方法
     default.aspx页面:

 <asp:Button ID="Button1" Runat="server" Text="PostToAnotherPage" PostBackUrl="~/Default2.aspx" />
2Asp.net 页面传值的方法
    




ASP.NET页面传值的方法

  default2.aspx页面:

 if (PreviousPage != null)
2                    TextBox textBox1 = (TextBox)PreviousPage.FindControl("TextBox1");
4Asp.net 页面传值的方法
    




ASP.NET页面传值的方法           Response.write(textBox1.Text );
5Asp.net 页面传值的方法
    




ASP.NET页面传值的方法        }


六.使用Server.Transfer方法
    这个才可以说是 面象对象开发所使用的方法,其使用Server.Transfer方法把流程从当前页面引导到另一个页面中,新的页面使用前一个页面的应答流,所以这个方 法是完全面象对象的,简洁有效。下面这个代码是展示在需要很多个参数的时候,使用的方法,如果参数比较少就没必要使用这个方法了.
如果让所有的查询页面都继承一个接口,在该接口中定义一个方法,该方法的唯一作用就是让结果页面获得构建结果时所需的参数,就可实现多页面共享一个结果页面操作! 

1、先定义一个类,用该类放置所有查询参数:

/// QueryParams 的摘要说明
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法
/// </summary>

Asp.net 页面传值的方法
    




ASP.NET页面传值的方法public class QueryParams
  private   string   firstName; 
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法        private   string   lastname;
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法        private   int    age;
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法      
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法         public string Firstname 
                    get             set         } 
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法        public string LastName 
                    get             set         }
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法        public string Age
                    get             set         } 
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法 
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法}

Asp.net 页面传值的方法
    




ASP.NET页面传值的方法
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法


2、接口定义: 

    ///   定义查询接口。 
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法    
///   </summary > 

Asp.net 页面传值的方法
    




ASP.NET页面传值的方法    public interface IQueryParams
                    ///   参数 
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法        
///   </summary > 

        QueryParams Parameters     } 
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法


     3、查询页面继承IQueryParams接口(QueryPage.aspx):
QueryPage.aspx

<form id="form1" runat="server">
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法    <div>
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法        <asp:TextBox ID="txtFirstName" runat="server"></asp:TextBox>
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法        <asp:TextBox ID="txtLastName" runat="server"></asp:TextBox>
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法         <asp:TextBox ID="txtAge" runat="server"></asp:TextBox>
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法        <asp:Button ID="btnEnter" runat="server" Text="Button" OnClick="btnEnter_Click" /></div>
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法    </form>
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法


QueryPage.aspx.cs

public partial class QueryPage : System.Web.UI.Page, IQueryParams 
    private QueryParams queryParams;
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法   
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法        public   QueryParams   Parameters 
                    get 
                             return   queryParams; 
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法            }
 
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法        }
 
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法       
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法        public   void   btnEnter_Click(object   sender,   System.EventArgs   e) 
                    //赋值 
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法
            queryParams   =   new   QueryParams();
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法            queryParams.FirstnName = this.txtFirstName.Text;
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法            queryParams.Lastname = this.txtLastName.Text;
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法            queryParams.Age = this.txtAge.Text;
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法            Server.Transfer( "ResultPage.aspx "); 
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法        }

Asp.net 页面传值的方法
    




ASP.NET页面传值的方法
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法    protected void Page_Load(object sender, EventArgs e)
    }
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法4、接收页面(ResultPage.aspx):
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法ResultPage.aspx.cs
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法public partial class ResultPage : System.Web.UI.Page
    protected void Page_Load(object sender, EventArgs e)
            QueryParams queryParams = new QueryParams();
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法        IQueryParams queryInterface;
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法        //实现该接口的页面 
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法
        if (Context.Handler is IQueryParams)
                    queryInterface = (IQueryParams)Context.Handler;
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法            queryParams = queryInterface.Parameters;
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法        }

Asp.net 页面传值的方法
    




ASP.NET页面传值的方法
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法        Response.Write("FirstName: ");
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法        Response.Write(queryParams.FirstName);
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法        Response.Write(" <br/ >Lastname: ");
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法        Response.Write(queryParams.LastName); 
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法        Response.Write(" <br/ >Age: ");
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法        Response.Write(queryParams.Age); 
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法    }

Asp.net 页面传值的方法
    




ASP.NET页面传值的方法}

From:Refresh-air

在面试的时候,经常会遇到这样的问题,其实我们会对其中的几种方法比较熟悉,因为项目中经常使用。但是要全面的回答ASP.NET中页面传值的方式,估计往往很难全面。
一.
 使用QueryString变量
    QueryString是一种非常简单也是使用比较多的一种传值方式,但是它将传递的值显示在浏览器的地址栏中,如果是传递一个或多个安全性要求不高或是结构简单的数值时,可以使用这个方法。

         Response.Redirect( "target.aspx?param1=hello&param2=hi ") 
        接收页面:   string   str   =   Request.QueryString["param1"]; 
                               string   str1   =  Request.QueryString["param2];
二.使用Cookie对象变量(Cookie是存放在客户端的)
       设置Cookie:   HttpCookie cookie_name = new HttpCookie("name");
                         cookie_name.Value = Label1.Text;
                         Reponse.AppendCookie(cookie_name);
    
          获取Cookie:
                       string name= Request.Cookie["name"].Value.ToString();
 
三. 使用Session变量(session是存放在服务器端的)
  设置Session:      Session["name"] ="hello";
        获取Session:        string name = Session["name"].ToString();
四.使用Application 对象变量
  Application对象的作用范围是整个全局,也就是说对所有用户都有效。此种方法不常使用,因为Application在一个应用程序域范围共享,所有用户可以改变及设置其值,故只应用计数器等需要全局变量的地方。 
        设置Application :    Application["name"] = ="hello";
        获取Application :     string   name = Application["name"].ToString();
五. PostBackUrl()方法
     default.aspx页面:

 <asp:Button ID="Button1" Runat="server" Text="PostToAnotherPage" PostBackUrl="~/Default2.aspx" />
2Asp.net 页面传值的方法
    




ASP.NET页面传值的方法

  default2.aspx页面:

 if (PreviousPage != null)
2                    TextBox textBox1 = (TextBox)PreviousPage.FindControl("TextBox1");
4Asp.net 页面传值的方法
    




ASP.NET页面传值的方法           Response.write(textBox1.Text );
5Asp.net 页面传值的方法
    




ASP.NET页面传值的方法        }


六.使用Server.Transfer方法
    这个才可以说是 面象对象开发所使用的方法,其使用Server.Transfer方法把流程从当前页面引导到另一个页面中,新的页面使用前一个页面的应答流,所以这个方 法是完全面象对象的,简洁有效。下面这个代码是展示在需要很多个参数的时候,使用的方法,如果参数比较少就没必要使用这个方法了.
如果让所有的查询页面都继承一个接口,在该接口中定义一个方法,该方法的唯一作用就是让结果页面获得构建结果时所需的参数,就可实现多页面共享一个结果页面操作! 

1、先定义一个类,用该类放置所有查询参数:

/// QueryParams 的摘要说明
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法
/// </summary>

Asp.net 页面传值的方法
    




ASP.NET页面传值的方法public class QueryParams
  private   string   firstName; 
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法        private   string   lastname;
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法        private   int    age;
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法      
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法         public string Firstname 
                    get             set         } 
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法        public string LastName 
                    get             set         }
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法        public string Age
                    get             set         } 
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法 
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法}

Asp.net 页面传值的方法
    




ASP.NET页面传值的方法
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法


2、接口定义: 

    ///   定义查询接口。 
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法    
///   </summary > 

Asp.net 页面传值的方法
    




ASP.NET页面传值的方法    public interface IQueryParams
                    ///   参数 
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法        
///   </summary > 

        QueryParams Parameters     } 
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法


     3、查询页面继承IQueryParams接口(QueryPage.aspx):
QueryPage.aspx

<form id="form1" runat="server">
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法    <div>
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法        <asp:TextBox ID="txtFirstName" runat="server"></asp:TextBox>
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法        <asp:TextBox ID="txtLastName" runat="server"></asp:TextBox>
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法         <asp:TextBox ID="txtAge" runat="server"></asp:TextBox>
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法        <asp:Button ID="btnEnter" runat="server" Text="Button" OnClick="btnEnter_Click" /></div>
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法    </form>
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法


QueryPage.aspx.cs

public partial class QueryPage : System.Web.UI.Page, IQueryParams 
    private QueryParams queryParams;
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法   
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法        public   QueryParams   Parameters 
                    get 
                             return   queryParams; 
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法            }
 
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法        }
 
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法       
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法        public   void   btnEnter_Click(object   sender,   System.EventArgs   e) 
                    //赋值 
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法
            queryParams   =   new   QueryParams();
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法            queryParams.FirstnName = this.txtFirstName.Text;
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法            queryParams.Lastname = this.txtLastName.Text;
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法            queryParams.Age = this.txtAge.Text;
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法            Server.Transfer( "ResultPage.aspx "); 
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法        }

Asp.net 页面传值的方法
    




ASP.NET页面传值的方法
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法    protected void Page_Load(object sender, EventArgs e)
    }
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法4、接收页面(ResultPage.aspx):
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法ResultPage.aspx.cs
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法public partial class ResultPage : System.Web.UI.Page
    protected void Page_Load(object sender, EventArgs e)
            QueryParams queryParams = new QueryParams();
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法        IQueryParams queryInterface;
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法        //实现该接口的页面 
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法
        if (Context.Handler is IQueryParams)
                    queryInterface = (IQueryParams)Context.Handler;
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法            queryParams = queryInterface.Parameters;
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法        }

Asp.net 页面传值的方法
    




ASP.NET页面传值的方法
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法        Response.Write("FirstName: ");
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法        Response.Write(queryParams.FirstName);
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法        Response.Write(" <br/ >Lastname: ");
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法        Response.Write(queryParams.LastName); 
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法        Response.Write(" <br/ >Age: ");
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法        Response.Write(queryParams.Age); 
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法
Asp.net 页面传值的方法
    




ASP.NET页面传值的方法    }

Asp.net 页面传值的方法
    




ASP.NET页面传值的方法}

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-05-26
  • 2021-11-23
  • 2021-11-13
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-01-07
  • 2021-06-05
  • 2022-12-23
  • 2021-12-02
相关资源
相似解决方案