• 总结:Asp.net页面之间传递参数的几种方法


    第一种方法:
    通过URL链接地址传递Request.QueryString
    send.aspx:
       protected void Button1_Click(object sender, EventArgs e)
         {
             Request.Redirect("Default2.aspx?username=honge");
         }
     
    receive.aspx:
    string username = Request.QueryString["username"];这样可以得到参数值。

    第二种方法:
    通过post方式Request。
    send.aspx
    <form id="form1" runat="server" action="receive.aspx" method=post>
         <div>
      <asp:TextBox ID="username" runat="server"></asp:TextBox>
      //<input type="text" name="username" />
            <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
     </div>
    </form>
     
    receive.aspx
    string username = Ruquest.Form["receive"];//string username = Ruquest["username"];

    第三种方法:
    通过session
    send.aspx:
       protected void Button1_Click(object sender, EventArgs e)
         {
             Session["username"] = "honge";
             Request.Redirect("Default2.aspx");
         }
     
    receive.aspx:
    string username = Session["username"];这样可以得到参数值。

    第四种方法:
    通过Application
    send.aspx:
       protected void Button1_Click(object sender, EventArgs e)
         {
             Application["username"] = "honge";
             Request.Redirect("Default2.aspx");
         }
     
    receive.aspx:
    string username = Application["username"];这样可以得到参数值。

    第五种方法:
    通过Server.Transfer
    send.aspx:
       public string Name
         {
             get {
                 return "honge";
             }
         }
         protected void Button1_Click(object sender, EventArgs e)
         {
             Server.Transfer("Default2.aspx");
         }
     
    receive.aspx:
        send d = Context.Handler as send ;
             if (d != null)
             {
                 Response.Write(d.Name);这样可以得到参数值。
             }
      
    如果在asp.net 2.0中还可以这样用:通过PreviousPage
    PreviousPage d = Context.Handler as PreviousPage ;
    if (d != null)
             {
                 Response.Write(d.Name);这样可以得到参数值。
             }
    也可以这样用:
    send.aspx:
    <asp:Button ID="btnSubmit" runat="server" PostBackUrl="~/reveive.aspx" Text="Submit" />

    receive.aspx:
    <%@ PreviousPageType VirtualPath="~/Default.aspx" %>
    string name = PreviousPage.Name;这样可以得到参数值。
    注意:如果你的页面中用到了MasterPage的话 Server.Transfer 传递的 PreviousPage就无效了,不知道这是什么原因.所以在用到MasterPage的话,最好用Session或是Context.Items["username"]来实现.

    第六种方法:
    通过Cookie
    方法类似Session。

    第七种方法:
    通过Viewstate
    Viewstate使用简单,缺点是只能够在同一个页面使用,在ASP.NET2.0里这个问题可以使用Button的PostBackUrl进行解决。

    第八种方法:
    通过Cache
    Cache通常用于缓存服务端某些不常变动的数据。
    使用Cache存储数据的场合虽然不多,但是毕竟也是一种手段,另外,在使用Cache存储DataSet时,其实还是引用而不是内容的拷贝。

    本文来自博客园,作者:Coco•兮月,转载请注明原文链接:https://www.cnblogs.com/ykblog/archive/2011/06/27/2091228.html,否则保留追究其法律责任的权利。

  • 相关阅读:
    UnxUtils让windows下的dos命令变为linux下的命令
    Python多线程&进程
    Web前端工程师-优秀简历汇总
    最详细的Vuex教程
    Vue2.0 探索之路——生命周期和钩子函数的一些理解
    理解 $nextTick 的作用
    使用git rebase合并多次commit
    vim 退出命令(保存、放弃保存)
    Vue获取DOM元素样式 && 样式更改
    Vue Router的配置
  • 原文地址:https://www.cnblogs.com/ykblog/p/2091228.html
Copyright © 2020-2023  润新知