黑马程序员技术交流社区

标题: .NET 页面间传值的几种方法 [打印本页]

作者: 一片白    时间: 2014-4-30 15:08
标题: .NET 页面间传值的几种方法
本帖最后由 一片白 于 2014-5-4 16:10 编辑

请问 B/S系统页面传值的方式 有几种?它们分别是什么哦?

作者: 许庭洲    时间: 2014-4-30 16:04
同一页面.aspx与.aspx.cs之间参数传递
1. .aspx.cs接收.aspx的参数:由于.aspx和.aspx.cs为继承关系,所以.aspx.cs可以直接对.aspx中的ID进行值提取,具体语句为string b = a.text; 其中a为.aspx中的文本框的ID;
2. .aspx接收.aspx.cs的变量:将.aspx.cs的变量设为全局变量,在.aspx中直接引用<%=a %>,这里a为.aspx.cs
中声明的全局变量;
不同页面之间的参数传递
1.URL传递参数方法,有两种方法:

  第一种:
             send.aspx
             <a href=receive.aspx?a=b></a>
              
              receive.aspx.cs
              string c = Request.QueryString["a"];

  第二种:
             send.aspx.cs:
              protected void Button1_Click(object sender, EventArgs e)
             {
                  Request.Redirect("receive.aspx?a=b");
             }
            
             receive.aspx.cs:
             string username = Request.QueryString["username"];

2. Form表单POST方法
send.aspx
<form id="form1" runat="server" action="receive.aspx" method=post>
    <div>
        <asp:Button ID="Button1" runat="server" Text="Button" />
        <asp:TextBox ID="a" runat="server"></asp:TextBox>
   </div>
</form>
receive.aspx.cs
string b = Ruquest.Form["a"];
3.通过session方法传递参数
   优点: 1.使用简单,不仅能传递简单数据类型,还能传递对象。
             2.数据量大小是不限制的。
   缺点: 在Session变量存储大量的数据会消耗较多的服务器资源。
send.aspx.cs:
  protected void Button1_Click(object sender, EventArgs e)
    {
        Session["username"] = "a";
        Request.Redirect("receive.aspx");
    }
receive.aspx:
string username = Session["username"];

作者: 嘴角上揚ぃ读不    时间: 2014-4-30 22:44
1.使用QueryString,  如....?id=1; response. Redirect()....
2.使用Session变量
3.使用Server.Transfer





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2