zoukankan      html  css  js  c++  java
  • ASP.NET页面之间传值的几种方式

    大致概括一下,ASP.NET页面之间传值得几种方式可以分为以下几种:

    Request.QueryString["name"] 、Request.Form["name"]、Session、Cookie、Application、Server.Transfer、Cache、DataBase、

    HttpContext 的 Item属性、Files等

    1、Request.QueryString :获取地址栏参数(以GET方式提交的数据)

    a.aspx

           string s_url; 
       s_url = "b.aspx?name=" + Label1.Text; 
       Response.Redirect(s_url);

    b.aspx

               Label2.Text = Request.QueryString["name"];

    注:Request.QueryString主要是获取url中的“?”后的参数,如url:a.aspx?name="queryString",则Request.QueryString["name"]的值为“queryString”。

           Request.QueryString:获取http查询字符串变量集合。有两重载,即Request.QueryString[string name]和Request.QueryString[int index];


    2、Request.Form:获取以POST方式提交的数据(获取 Form 窗体变量集合);

    < form id="form2" method="post" runat="server">       

      < div>       

            你的名字: < asp:TextBox ID="name2" runat="server">< /asp:TextBox>< br />   < br />         

            你的网站:< asp:TextBox ID="website2" runat="server">< /asp:TextBox>< br />   < br />         

     

           < asp:Button ID="Button2" runat="server" Text="send" />< br />          

     

       < /div>       

    < /form>       

    protected void Page_Load(object sender, EventArgs e)     
     {     
              
            string id2 = Request.Form["name2"];     
            string website2 = Request.Form["website2"];     
            Response.Write(id2 + "< br>" + website2);     

    注意:Request.Form 获取窗体变量集合。有两重载,即Request.Form[string name]和Requst.Form[int index]。

               获取表单指定名字的参数值


    同时接受get和post 方法传送数据的代码写法:

    a、

            string id4 = Request["name4"];     
            string website4 = Request["website4"];     
            Response.Write(id4 + "< br>" + website4);  

    b、

            string id3 = Request.Params["name3"];     
            string website3 = Request.Params["website3"];     
            Response.Write(id3 + "< br>" + website3);  


     

    3、Session

    a、Session提供了一种把信息保存在服务器内存中的方式。他能储存任何数据类型,包含自定义对象 

    b、每个客户端的Seesion是独立存储的。

    c、当会话终止,或过期时,服务器就清除Session对象。

    d、Session常用于保存登录用户的ID.

    e、Session保存的数据是跨页面全局型的。

    f、Session将一个ID存放在客户端做为与服务端验证的标记,而真正的数据都是放在服务端的内存之中的

    <head runat="server">
        <title></title>
        <script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
        <script type="text/javascript">
            function getSessionClick(action) {   //这个函数是为了知道哪一个提交按钮被点击
                $("#hidlgc").val("");  //清空隐藏值
                $("#hidlgc").val(action);   //给隐藏控件赋值
            }
        </script>
    </head>
    <body>
        <form id="form1" method="post" action="MySession.aspx">
             <table>
                <tr>
                    <td>账号:</td><td><input type="text" name="txtUid" /></td>`
                </tr>
                 <tr>
                    <td>密码:</td><td><input type="password" name="txtPwd" /></td>
                 </tr>
                 <tr>                
                    <td colspan="2">
                        <input type="hidden" value="" id="hidlgc" name="hidlgclick" />  
                        <input onclick="getSessionClick('lgclick')" type="submit" value="登录" />
                        <input type="submit" onclick="getSessionClick('getSession')" value="获取session" />
                        <input type="submit" onclick="getSessionClick('backLg')" value="退出登录" />
                    </td>
                 </tr>
             </table>
        </form>
    </body>

    protected void Page_Load(object sender, EventArgs e)
    {
                //把用户id写入session中
                if (Request.Form["hidlgclick"] == "lgclick")
                {
                    if(Request.Form["txtUid"].ToString()=="admin"&&Request.Form["txtPwd"].ToString()=="admin") //判断用户登录
                    {
                        Session["userName"] = Request.Form["txtUid"].ToString();  //把用户id保存到session中
                        Response.Write(Session["userName"].ToString()+"---点击登录"); //获取session,并写入页面
                    }
                }
                //获取Session
                if (Request.Form["hidlgclick"] == "getSession")
                {
                    if (Session["userName"] != null)
                    {
                        Response.Write(Session["userName"].ToString() + "---点击获取session"); //获取session,并写入页面
                    }
                }
                //取消当前会话,相当于注销(退出登录)。
                if (Request.Form["hidlgclick"] == "backLg")
                {
                    Session.Abandon();
                }
    }
    <system.web>
        <sessionState timeout="40"></sessionState>  <!---设置session的过期时间,时间以分钟为单位-->
    注:
    Session基本操作

    a、创建Session
    public void createSession(string[] arrStr)
    {
         //创建数组
          string[] str=new string[arrStr.Length];
          for (int i = 0; i < arrStr.Length; i++)
         {
               str[i] = i.ToString();
              Session[str[i]] = arrStr[i];
         }
     }
    b、获取Session的值
    string  getSessionValue=Session["name"].ToString();

    c、遍历Session
    public void getSession()
    {
        IEnumerator sessionEnum = Session.Keys.GetEnumerator();
        while (sessionEnum.MoveNext())
        {
            Response.Write(Session[sessionEnum.Current.ToString()].ToString()+";");
        }
     }

    d、清空Session,但不结束会话
    public void clearSession()
    {
      Session.Clear();
    }
    e、结束Session会话
    public void abandonSession()
    {
        Session.Abandon();
    }

    4、Cookie
    
    
    

             

       
  • 相关阅读:
    使用PDO连接数据库
    ES6 promise
    弹框小三角
    封装弹窗功能
    css3 省略号
    使mac支持NTFS读写问题
    Vue 打包 build 前需要修改哪些配置和路径
    eslint配置大全
    在elementUI中使用 el-autocomplete 实现远程搜索的下拉框
    element-UI table自定义表头
  • 原文地址:https://www.cnblogs.com/1955/p/7494545.html
Copyright © 2011-2022 走看看