1.ASP.NET中常见的系统对象(也可以叫做隐式对象或内置对象):
(1.) Page对象:指向页面自身 ,在整个页面的执行期间都可以使用。
Language:指定页面代码和后置代码使用的语言;
AutoEventWireup:设置页面是否自动调用网页事件,页面加载会调用Load事件;
CodeFile:代码文件名 存放后置代码 该后置代码与页面是局部关系
Inherits:页面类 如下 后置代码中红色部分就指定了页面设置的页面类,两者是一一对应的:
{
protected void Page_Load( object sender, EventArgs e)
{
}
}
(2.)Request对象: 从浏览器(客户端)请求数据 用于页面请求期。
QueryString:收集Get方式提交的URL中‘?’后的数据
Form:收集POST方法发送的请求数据
ServerVariable:该集合包含了服务器和客户端的系统信息
Params:集合以上三种,不适用。
(3.)Response对象: 提供向浏览器输出信息或发出指令 用于页面执行期。
Write():输出指定的文本
End():使Web服务器停止当前的程序并返回结果
Redirect():重定向到其他页面
(4.)Server对象: 提供服务器的一些属性和方法,比如页面文件的绝对路径等。
MapPath:
Server.MapPath(string path) //path为web服务器上的虚拟路径 返回物理路径
Execute:在当前页面执行参数指定的页面,完成后继续执行本页
Transfer:在当前页面执行参数指定的页面,指定页面执行完成后不回到原先的那个页面
(5.)Application对象:对所有用户提供共享信息 作用于整个应用程序的运行期。
Application["名称"] = 值;
变量 = Application["名称"];
(6.)Session对象:为某个用户提供共享信息 作用于会话期。
Session也是集合,同样可以使用索引器方式访问
Session["session名称"]=值;
变量 = Session["Session名称"];
Session特点:
Session对象包含某一个用户的状态信息(比如登录状态),此信息不与其他用户共享,只面向该用户连接
Session 会话超时或过期 服务器即刻清除session对象 释放占用的资源 注:session占用的服务器资源
Session会话期通过SessionID传递状态信息,不像Cookie那样将所有内容传输,客户端只对SessionID可见,对状态信息的内容不可见。
常用属性和方法:
SessionID:包含唯一的用户会话标志符 用于整个会话过程中记录用户信息
Timeout属性:单位为分钟 设置会话超时时间
IsNewSession属性:如果已按当前请求创建会话,返回true
Clear()方法 :从会话集合中清除所有的键和值
Abandon()方法:结束session,取消当前会话
(7.)Cookie对象:保持于客户端的共享信息方式。
cookie属于集合对象,使用索引器的方式访问
语法:
Response Cookies[Cookie的名称].Value = 变量值; //写入
String 变量名 = Request.Cookies["Cookie的名称"].Value; //读取
或
HttpCookie cookie = new HttpCookie("Cookie名称","值");
Response.Cookies.Add(cookie);
Cookie常用属性:
Name:Cookie变量的名称
Value:Cookie值
Expire:Cookie有效时间
Cookie默认大小为4kb
2.页面传值:
准备第一个页面Default.aspx:
Button PostBackUrl 属性设置将要跳转到的 页面地址 Target.aspx
< div >
< asp:TextBox ID = " TextBox1 " runat = " server " ></ asp:TextBox >& nbsp;
< asp:Button ID = " Button1 " runat = " server " Text = " Button " PostBackUrl = " ~/Target.aspx " /></ div >
</ form >
页面代码:
{
if ( ! IsPostBack)
{
this .TextBox1.Text = " 这是首次加载的数据 " ;
}
if (Page.IsCrossPagePostBack) // 确定使用跨页提交
{
this .TextBox1.Text = " 开始跨页传输数据 " ;
}
}
准备目标页 Target.aspx 放置 一个 label 标签即可 代码如下:
{
if (PreviousPage.IsCrossPagePostBack)
{
Label1.Text = " 传输过来的值: " + ((TextBox) this .PreviousPage.FindControl( " textbox1 " )).Text; //找到传输过来的页面中的textbox控件并获取它的值
}
}
else
{
Response.Redirect( " Default.aspx " );
}