ASPNET中的有哪些內(nèi)置對象可以用來在不同頁面之間傳遞參數(shù)值?
Response對象
主要運用于數(shù)據(jù)從服務器發(fā)送到瀏覽器,可以輸出數(shù)據(jù)、頁面跳轉、各個網(wǎng)頁之間傳參數(shù)等操作。
以下講解幾個常用例子:
在頁面中輸出數(shù)據(jù)
主要通過Write 、WriteFile方法輸出數(shù)據(jù)。
Response.Write("hello");//在網(wǎng)頁上顯示hello
Response.WriteFile(@"F:\\hello.txt");//在網(wǎng)頁上打開hello.txt并顯示
Response.Write("<script>alert('hello')</script>");//彈出一個框顯示hello
Response.Write("<script>alert('跳轉');location.href(’webForm1.aspx’)</script>");//彈出一個框顯示“跳轉”并且網(wǎng)頁跳轉到webForm1.aspx。
頁面跳轉并傳參
Response.Redirect("~/WebForm2.aspx"); //使用Redirect方法重定向,跳轉到WebForm2.aspx 頁面
在頁面重定向URL時傳參數(shù),用“?”分隔開,比如:地址?參數(shù)&參數(shù)&參數(shù)。。。
string name=”chen”;
string sex=”boy”;
Response.Redirect("~/WebForm2.aspx?Name="+name+”&Sex=”+sex)
注意:需要另一個Request對象接收,才能在webForm.aspx上顯示。
輸出二進制圖片
使用BinaryWrite顯示二進制數(shù)據(jù)。
先添加命名空間,Using System.IO;
FileStream str=new FileStream(Server.MapPath(“pic.gif”).FileMode.Open);
//打開圖片,并保存在文件流中
long FileSize=str.Length;//獲取文件流長度
byte byt[] =new byte(FileSize);//定義一個數(shù)組,用于后面存字節(jié)
str.Read(byt,0,FileSize);//讀取字節(jié)流,并轉化為二進制,保存在byt數(shù)組中。
str.Close();
Response.BinaryWrite(byt);//讀取二進制
另外
Response.Write(“<script>windows.Close();</script>”);//直接關閉窗口
Request對象
主要是檢索瀏覽器向服務器發(fā)出的請求信息。就相當于獲取上面Response從服務器發(fā)送到瀏覽器的消息。
獲取網(wǎng)頁見傳遞的參數(shù)。
比如:上面?zhèn)鲄⒌?/p>
string name=”chen”;
Response.Redirect("~/WebForm2.aspx?Name="+name)
獲取:
Response.Write(“使用Request[string key 方法]”+Request[Name]);
Response.Write(“使用Request.Params[string key 方法]”+Request.Params[Name]);
Response.Write(“使用Request.QueryString[string key 方法]”+Request.QueryString[Name]);
獲取客戶端瀏覽器的信息
主要使用Request的Browser對象,訪問HttpBrowserCapabilities屬性獲取當前的相關瀏覽器信息。
HttpBrowserCapabilities bb=Request.Browser;
Response.Write(“客戶端瀏覽器相關信息”);
Response.Write(“類型:”+bb.Type);
Response.Write(“名稱:”+bb.Browser;
Response.Write(“版本:”+bb.Version);
Response.Write(“操作平臺:”+bb.Platform);
Response.Write(“是否支持框架:”+bb.Frames);
Response.Write(“是否支持表格:”+bb.Tables);
Response.Write(“是否支持Cookies:”+bb.Cookies);
Response.Write(“遠程客戶端IP地址:”+bb.UserHostAddress);
....
Application對象
主要是共享一個程序級的先關信息,比如多個用戶共享一個Application對象。
使用Application實現(xiàn)全局的存儲和讀取
由于應用程序中的所有頁面都可以訪問這個全局變量,所以要對其對象加上,加鎖和解鎖操作來保證數(shù)據(jù)的一致性。
比如:
Application.Lock();//加鎖
Application[name]=”chen”;
Application.UnLock();//解鎖
常常運用于網(wǎng)站訪問計數(shù)器和網(wǎng)頁聊天。
網(wǎng)站訪問計數(shù)器:
1:
添加一個全局應用程序類(Global.asax),添加后會自動出現(xiàn)
void Application_Start(object sender, EventArgs e)
void Session_Start(object sender, EventArgs e)
void Session_End(object sender, EventArgs e)
...事件,分別在以上三個事件添加方法
void Application_Start(object sender, EventArgs e)
{ Application[“count”]=0;//應用程序啟動時運行 }
void Session_Start(object sender, EventArgs e)
{ Application.Lock();//加鎖
Application[“count”]=(int)Application[“count”]+1;
Application.UnLock();//解鎖 }
//會話啟動時運行
void Session_End(object sender, EventArgs e)
{ Application.Lock();//加鎖
Application[“count”]=(int)Application[“count”]-1;
Application.UnLock();//解鎖 }
//會話關閉時運行:
2:
所設置的網(wǎng)頁
protected void Page_Load(object sender, EventArgs e)
{ Label1.Text = "訪問量:" + Application["count"]; }