asp.net 的各种传参

来源:互联网 发布:mean.js 教程 编辑:程序博客网 时间:2024/05/16 15:41

**********************************Default.aspx.xs***************************

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

namespace Cookie_ViewState_Hiddlen
{
    public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                ViewState["test"] = 0;//EnableViewState 默认为true 这里判断是否第一次 以便初始化
            }
            test_hidden.Value = "看看  这就是hidden";
            if (Request.Cookies["test_cookie"]!= null)
            {
                TextBox3.Text = Request.Cookies["test_cookie"].Value.ToString();
            }
          
        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            if (ViewState["test"] != null)
            {
                int i = int.Parse(ViewState["test"].ToString());
                i ++;//每点击一次按钮 相应的值加1     我们把EnableViewState 设为false 就没有效果了 为false 就不回发了
                ViewState["test"] = i;
                TextBox1.Text = ViewState["test"].ToString();
            }
        }

        protected void Button2_Click(object sender, EventArgs e)
        {
            TextBox2.Text = test_hidden.Value;//通过把后台的hidden 控件当成一个中间变量就ok啦
        }

        protected void Button3_Click(object sender, EventArgs e)  // cookie 是放在我们本地硬盘或内存上的
        {
            HttpCookie cookie = new HttpCookie("test_cookie");
            cookie.Value = TextBox3.Text;
            DateTime now=DateTime.Now;
            TimeSpan add = new TimeSpan(0, 0, 1, 0);
            cookie.Expires = now + add;


            Response.Cookies.Add(cookie);
        }

        protected void Button4_Click(object sender, EventArgs e)
        {
            //我们先在 Global.asax 中初始化test_application的值       application 的好处是 只要你在iis上面挂起的  那么这个值就一值存在 可以供多个客户端访问

            int i = int.Parse(Application["test_application"].ToString());
            i++;
            TextBox4.Text = "你是第" +i+"位访客";
            Application["test_application"] = i;

        }

        protected void Button5_Click(object sender, EventArgs e)  一般一个用户的不同页面之间可以用session传参  多个用户的话 我们就用application
        {
            Session["test_session"] = TextBox5.Text;// 用的话 也是Session["test_session"] 直接取值就可了
            Response.Redirect("WebForm1.aspx");
        }

    

      
    }
}

 

****************************Default.aspx***********************

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Cookie_ViewState_Hiddlen._Default"  EnableViewState="true"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>无标题页</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
   
        <h1>客户端的状态保存<h1>
        <br/>
        <asp:Button ID="Button1" runat="server" Text="ViewState"
            onclick="Button1_Click" />
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        <br/>
        <asp:Button ID="Button2" runat="server" Text="Hiddlen"
            onclick="Button2_Click" />
          <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
        <asp:HiddenField ID="test_hidden" runat="server" />
       
        <br/>
        <asp:Button ID="Button3" runat="server" Text="Cookie" onclick="Button3_Click" />
        <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
       
        <br/>
        <p>还有一种就是使用get 提交表单  在用的时候用Request.QueryString[""]或者requestParam[] 获取
       
        另一种是在form表单中定义好要用到的id 在其他页面就可以用request.form[""]使用的了</p>
       
        <br/>
       
        <h1> 基于服务器的状态保持</h1>
            <asp:Button ID="Button4" runat="server" Text="Application"
            onclick="Button4_Click" />
            <asp:TextBox ID="TextBox4" runat="server"></asp:TextBox>
            <br/>
            <asp:Button ID="Button5" runat="server" Text="Session"
            onclick="Button5_Click" />
            <asp:TextBox ID="TextBox5" runat="server"></asp:TextBox>
        <br/>
       
       
     
    </div>
    </form>
</body>
</html>

大致的6种方式  通过Viewstate、隐藏字段、cookie 、get方式提交(前四种为基于客户端的) Application 、Session(这两种就是基于服务器的) ,基本的操作及区别见注释

原创粉丝点击