zoukankan      html  css  js  c++  java
  • ASP.NET 页面传值方法

    1.         前言

    传统的ASP应用程序中,能够通过POST方法很容易把一个值或多个值从一个页面传送到另一个页面,用同样的方法在ASP.NET中实现有点麻烦。在ASP.NET中页面间的传值方法有很多,下面通过QueryString方法,Session方法,Server.Transfer方法,Cookie对象方法,Application对象方法,PostBackUrl属性方法,@PreviousPageType指令方法来进行了解ASP.NET页面间的传值

    2.         使用QueryString传值

    1)         简介

    QueryString是一种非常简单也是使用比较多的一种传值方式,但是他将传递的值显示在浏览器的地址中,如果是传递一个或多个安全性要求不高或是结构简单的数值时,可以使用这个方法

    2)         创建工程

     

     

     

     

    文件、新建、网站,新建一个网站工程

    选择ASP.NET网站,单击浏览选择要保存的位置,单击确定

    3)         编码设计

    Ø 切回设计框

     

    在代码编辑框的下面,单击设计,切换回网页的设计界面

    Ø 设计发送数据网页

     

    在编辑框左边的工具栏中,选中控件绘制网页界面

     

    将网页界面绘制成上图所示

    Ø 编码

     

    编写Button_Click事件,创建一个字符串变量data,其值为web.aspx?name=TextBox1控件中输入的值,即要传的值,Response.Redirect()方法表示跳转到其他的页面,即Response.Redirect(要转到的页面.aspx)

    Ø 添加网页

    创建好后可以再工程文件中看到新建的文件

    Ø 设计接收数据网页

    利用工具箱,在新建的文件中绘制接收数据的网页

    Ø 编码

     

    Request.QueryString是用来获取参数,在页面中加入Request.QueryString语句,并且访问该页面时URL的后面带有“? 需要获取值的参数=***”,那么这条语句将返回等号后面的值,把这个值赋给Label1这个控件的Text属性上,将其显示写成Label1.Text=Request.QueryString[“需要获取值的参数”]

    Ø 测试

     

    在文本框中输入文字,单击Button

    显示出刚刚输入文本框中的文字

    3.         使用Session变量传值

    1)         简介

    Session的特点为:的数据保存在服务器端、可以保存任意类型的数据、默认的生命周期是20分钟,可以手动设置更长或更短的时间,使用Session保存数据后调用该数据时返回值是object

    2)         修改发送数据网页代码

    Session[“name”]=Text.Box1.Text指将TextBox.Text的值写入Session,在Session失效之前(默认为20分钟)可通过Session[“name”]获取他的值

    3)         修改接收数据网页代码

    Label1.Text=Session[“name”].ToString();表示将Sessionname的值获取并赋给Label1.Text,由于Session返回类型为object类型,所以需要转换成字符串,即.Tostring()

    Session.Remove(“name”)清除掉nameSession的值,并释放其空间

    4)         测试

    在文本框中输入文字,单击Button

    显示出刚刚输入文本框中的文字

    4.         使用Server.Transfer传值

    1)         简介

    使用Server.Transfer方法把数据流从当前页面引导到另一个页面中,新的页面使用前一个页面的应答流,所以这个方式是面向对象

    2)         修改发送数据网页代码

    Server.Transfer(“web.aspx”) 表示跳转到其他的页面,这种方式迁移到另一个页面会保持服务资源,而不是简单的通知浏览器服务端换了个页面并迁移请求

    public string name

    {

     get

     {

        retrun TextBox1.Text;

    }

    }

    为这个页面设定一个公开属性,当使用name属性时,返回值是TextBox1.Text上的数据

    3)         修改接收数据网页代码

    _Default wb表示创建发送数据页面类的实例变量wb

    wb=(_Default)Context.Handler表示获取前一个网页传递过来的对象,并强制转换为_Default

    Label1.Text=wb.namewb中的name属性值赋给Label1.Text

    4)         测试

    在文本框中输入文字,单击Button

    显示出刚刚输入文本框中的文字

    5.         使用Cookie对象变量

    1)         简介

    相对于Session而言,Cookie数据是存放在客户端

    2)         修改发送数据网页代码

    HttpCookie cookie=new HttpCookie(“name”)实例化HttpCookie的对象,HttpCookie提供一个建立和操作独立HTTP cookies的安全类型的方式,name为保存数据的变量名

    cookie.Value=TextBox1.Text将输入的信息赋给cookie.Value属性

    Response.AppendCookie(cookie)cookie添加到内部Cookie集合

    3)         修改接收数据网页代码

    Label1.Text=Request.Cookies[“name”].Value.ToString()取出Cookie中的name的值,将其转换为字符串并赋给Label1.Text

    4)         测试

    在文本框中输入文字,单击Button

    显示出刚刚输入文本框中的文字

    6.         使用Application对象变量

    1)         简介

    Application对象的作用范围是整个全局,也就是说对所有用户都有效,此方法不常使用,因为Application在一个应用程序域范围共享,所有用户可以改变及设置其值,故一般应用在计数器等需要全局变量的地方

    2)         修改发送数据网页代码

    Application[“name”]=TextBox1.Text将在Text Box1.Text中输入的值赋给Application对象,其保存数据的变量名为name

    3)         修改接收数据网页代码

    Label1.Text=Application[“name”].ToString()取出Application中的name的值,将其转换为字符串并赋给Label1.Text

    4)         测试

    在文本框中输入文字,单击Button

    显示出刚刚输入文本框中的文字

    7.         使用@PreviousPageType指令

    1)         简介

    这个指令是.net 2.0中的一个新指令,用于处理ASP.NET 2.0提供的跨页面传送新功能,用于指定跨页面的传送过程起始于哪个页面

    2)         修改发送数据网页代码

    Button1中的Button1_Click事件去掉

     

    在页面设计框中单击源

    Button1中添加上图红框内的代码,表示单击Button后,页面转至web.aspx

    设置一个属性,返回一个TextBox的控件对象

    3)         修改接收数据网页代码

    将上面的代码添加在最上方,即设置回送时传送页面的地址

    将上一页面中的name返回值的Text属性值赋给Label1.Text

    4)         测试

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    在文本框中输入文字,单击Button

    显示出刚刚输入文本框中的文字

    8.         PostBackUrl属性

    1)         简介

    与上一方法基本一样,可以说是上一种方法的另一种实现,上一种方法主要通过直接返回控件来实现传值,这里使用的是在发送数据页面查找控件

    2)         修改发送数据网页代码

    删除上面的代码

    3)         修改接收数据网页代码

    删除上面的代码

    3)         修改接收数据网页代码

    将其删除

    Label1.Text=((TextBox)PreviousPage.FindControl(“TextBox1”)).Text表示在发送数据页面查找控件IDTextBox1的控件,将他强制转换成TextBox,并将其Text属性值赋给Label1.Text

    4)         测试

    在文本框中输入文字,单击Button

    显示出刚刚输入文本框中的文字

    9.         解决存在问题

    在没有单击Button按钮之前,也就是未处理Default.aspx之前,先请求了web.aspx,此时是不存在数据的,需要在web.aspx中的代码处理之前加入一个判断,使用IsCrossPagePostBack属性,允许检查请求是否来自Default.aspx,在接受数据页面写入:

    写完后,此时先浏览web.aspx页面会跳转到web.aspx页面

     

    本文转自:http://huobumingbai.blog.51cto.com/1196746/413240 活不明白的博客--技术..

     

     

     

     

     

     

     

    如果这篇文章对您有帮助,您可以打赏我

    技术交流QQ群:15129679

  • 相关阅读:
    bzoj1934 Vote 善意的投票 最小割(最大匹配)
    poj3417 Network 树上差分+LCA
    bzoj1076 奖励关 期望dp
    bzoj1087 互不侵犯King 状压dp+bitset
    bzoj1041 圆上的整点 数学
    bzoj 1085骑士精神 迭代深搜
    CodeForces 1043D Mysterious Crime 区间合并
    2018.12.14 浪在ACM 集训队第九次测试赛
    2018.12.9 中国石油大学第四次新生训练赛题解
    2018.12.8 中国石油大学第三次新生训练赛题解
  • 原文地址:https://www.cnblogs.com/yeminglong/p/2514932.html
Copyright © 2011-2022 走看看