asp.net內(nèi)置對(duì)象 Response對(duì)象使用介紹
Response對(duì)象是HttpRespone類的一個(gè)實(shí)例。該類主要是封裝來自ASP.NET操作的HTTP相應(yīng)信息。Response對(duì)象將數(shù)據(jù)作為請(qǐng)求的結(jié)果從服務(wù)器發(fā)送到客戶瀏覽器中,并提供有關(guān)響應(yīng)的消息。它可用來在頁面中輸出數(shù)據(jù),在頁面中跳轉(zhuǎn),還可以傳遞各個(gè)頁面的參數(shù)。
一、向頁面中輸出數(shù)據(jù)
語法格式
Response對(duì)象通過Write方法或WriteFile方法在頁面輸出數(shù)據(jù),輸出的對(duì)象可以是字符,字符串,字符數(shù)組,對(duì)象或文件。
用Response輸出數(shù)據(jù)時(shí),ASP.NET最重要的語法是:Response.Write(...);
實(shí)例:
(1)建立一個(gè)ASP.NET空網(wǎng)站,將網(wǎng)頁的標(biāo)題設(shè)置為“在頁面中輸出數(shù)據(jù)”。
(2)右擊資源管理器中的項(xiàng)目名稱,選擇“添加新項(xiàng)”命令,在彈出的添加新項(xiàng)的對(duì)話框中選擇“文本文件”,名稱設(shè)置為“WriteFile.txt”。
(3)在WriteFile.txt文本文件中輸入如下文本:
English can be displayed normally. For example,this is a book.<br/> 但是中文文字需要設(shè)置一下:<br/> 即在Response.Write開始寫上如下的語句:<br/> Response.ContentEncoding = System.Text.Encoding.UTF8;或Response.ContentEncoding = System.Text.Encoding.Default; <hr/>
(4)在Default.aspx.cs文件中找到Page_Load函數(shù),在函數(shù)中輸入如下內(nèi)容:
//Response.ContentEncoding = System.Text.Encoding.UTF8; //Response.ContentEncoding = System.Text.Encoding.Default; char c='a'; string s="用Response打印字符串"; char[] cArray = { '用', 'R', 'e', 's', 'p', 'o', 'n', 's', 'e', '打', '印','字','符','數(shù)','組',}; Page p = new Page(); Response.Write("輸出單個(gè)字符:"+c+"<hr/>"); Response.Write("輸出一個(gè)字符串:" + s + "<hr/>"); Response.Write("輸出字符數(shù)組:"); Response.Write(cArray,0,cArray.Length); Response.Write("<hr/>"); Response.Write("輸出一個(gè)對(duì)象:" + p + "<hr/>"); Response.Write("輸出一個(gè)文件:" + "<hr/>"); Response.WriteFile(@"~\WriteFile.txt");
(5)啟動(dòng)調(diào)試運(yùn)行的結(jié)果為:
二、向頁面輸出圖像文件
1)利用WriteFIle方法
語法格式
該方法將圖片文件以文件流的方式輸出到客戶端頁面。該方法使用使用之前,必須通過ContentType屬性定義文件流是什么類型文件。
Response.ContentType="image/JPEG";
Response.WriteFile(包含圖片的文件名);
實(shí)例
(1)我們可以利用Windows系統(tǒng)自帶的畫圖工具簡(jiǎn)易畫一個(gè)圖像,也可以從網(wǎng)上下載一個(gè)圖像,保存在本地硬盤文件系統(tǒng)中,文件名設(shè)置為tempimage.jpg。
(2)在本地硬盤文件系統(tǒng)中找到tempimage.jpg,將其復(fù)制到網(wǎng)站資源管理器中。右擊資源管理器,選擇“粘貼”選項(xiàng),將此文件粘貼到本項(xiàng)目中。
(3)在Default.aspx.cs文件中找到Page_Load函數(shù),在函數(shù)中輸入如下內(nèi)容:
Response.ContentType = "image/JPEG"; Response.WriteFile(@"~\tempimage.jpg");
(4)運(yùn)行的結(jié)果為:
2)用BinaryWrite方法輸出圖像
語法格式
通過Response對(duì)象的BInaryWrite方法輸出二進(jìn)制圖像格式如下:
byte[] buffer=new byte[整型文件長(zhǎng)度];
Response.BinaryWrite(buffer);
實(shí)例
(1)從網(wǎng)上找一個(gè)*.gif文件,保存到本地硬盤文件系統(tǒng)中,文件名設(shè)置為picture.gif。
(2)右擊網(wǎng)站資源管理,選擇“添加現(xiàn)有項(xiàng)”,彈出“添加現(xiàn)有項(xiàng)”對(duì)話框,找到你保存圖片的本地位置,點(diǎn)擊“添加”即可。
(3)在Default.aspx.cs文件中找到Page_Load函數(shù),在函數(shù)中輸入如下內(nèi)容:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.IO;//添加的命名空間 public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { //打開圖片文件,并存在文件流中 FileStream stream = new FileStream(Server.MapPath("picture.gif"),FileMode.Open); long FileSize = stream.Length;//獲取流的長(zhǎng)度 byte[] Buffer=new byte[(int)FileSize];//定義一個(gè)二進(jìn)制數(shù)據(jù) stream.Read(Buffer,0,(int)FileSize);//從流中讀取字節(jié)塊并將該數(shù)據(jù)寫入給定緩沖區(qū)中 stream.Close();//關(guān)閉流 Response.BinaryWrite(Buffer);//將圖片輸出在頁面上 //設(shè)置頁面的輸出格式 Response.ContentType = "image/gif"; Response.End();//中止頁面的其他輸出 } }
(4)運(yùn)行的結(jié)果為:
三、頁面跳轉(zhuǎn)
Response對(duì)象的Redirect和AppendHeader方法均可實(shí)現(xiàn)頁面重定向功能。Redirect方法較為常用,但該方法在頁面進(jìn)行跳轉(zhuǎn),即在頁面打開后才執(zhí)行的頁面重定向。而AppendHeader方法是在頁面打開前執(zhí)行的頁面重定向。前者還會(huì)執(zhí)行頁面的一些程序,而后者不會(huì)。
1、AppendHeader方法
語法格式
Response.AppendHeader(Name,Value)
參數(shù)Name為HTTP頭,參數(shù)Value為HTTP頭的值。
HTTP頭是HTTP協(xié)議規(guī)定的請(qǐng)求和響應(yīng)消息都支持的頭域內(nèi)容。HTTP頭是頁面通過HTTP協(xié)議訪問頁面時(shí),最先響應(yīng)的請(qǐng)求和響應(yīng)消息,例如HTTP頭中的Location,Location頭用于將頁面重定向到另一個(gè)頁面,與Redirect方法相似。
實(shí)例
(1)建立一個(gè)新的網(wǎng)站,默認(rèn)主頁為Default.aspx。在Default.aspx.cs文件中找到Page_Load函數(shù),在函數(shù)中輸入如下內(nèi)容:
Response.Status = "302 Object Moved"; Response.AppendHeader("Location","http://www.baidu.com");
(2)運(yùn)行的結(jié)果為:
2、Redirect方法
語法格式
Response.Redirect("重定向網(wǎng)頁方法")方法
實(shí)例
(1)建立一個(gè)新的網(wǎng)站,默認(rèn)主頁為Default.aspx。在Default.aspx.cs文件中找到Page_Load函數(shù),在函數(shù)中輸入如下內(nèi)容:
Response.Redirect(@"~/Redirect.aspx");
(2)右擊網(wǎng)站資源管理器,選擇“添加新項(xiàng)”,在“添加新項(xiàng)”對(duì)話框中選擇“Web窗體”,命名為Redirect.aspx。
(3)在Redirect.aspx窗體中,添加代碼:
<form id="form1" runat="server"> <div>這是重定向頁!??!</div> </form>
(4)運(yùn)行的結(jié)果為:
四、Response對(duì)象與JavaScript結(jié)合使用
有時(shí)候,我們需要在后臺(tái)服務(wù)器通過C#語言來執(zhí)行前臺(tái)客戶端的JavaScript代碼,有一種方法就是采用Response對(duì)象。采用Response.Write()方法將JavaScript腳本寫入客戶端頁面的<head></head>中并執(zhí)行,我們來說說常用的三種方法:
1、彈出提示對(duì)話框
Alert在JavaScript中主要用于警告作用,例如將要關(guān)閉一個(gè)網(wǎng)頁時(shí),可以提醒用戶網(wǎng)頁將要關(guān)閉。
Response.Write("<script>alert('這是提示對(duì)話框')</script>");
2、打開窗口
window.open用于打開新的窗口,語法格式如下:
Response.Write("<script>window.open(url,windowname[,loctaion])</script>");
可以對(duì)打開的新窗口設(shè)置文檔的名稱,窗口的寬高等一些參數(shù)。
3、關(guān)閉窗口
window.close用于關(guān)閉瀏覽器窗口。
Response.Write("<script>window.close()</script>");
實(shí)例
(1)建立一個(gè)新的網(wǎng)站,默認(rèn)主頁為Default.aspx,打開設(shè)計(jì)視圖,從工具箱拖入三個(gè)Button控件,分別設(shè)置為按鈕1,按鈕2,按鈕3。
(2)分別雙擊三個(gè)Button控件,添加Click事件的代碼為:
protected void Button1_Click(object sender, EventArgs e) { Response.Write("<script>alert('這是提示對(duì)話框')</script>"); } protected void Button2_Click(object sender, EventArgs e) { //在新窗口中打開Newwindow.aspx,各參數(shù)如下設(shè)置 string str = "<script>window.open('NewWindow.aspx','','height=100,width=400,top=0,left=0,toolbar=no,menubar=no,scrollbars=no,resizable=no,location=no,status=no')</script>"; Response.Write(str); } protected void Button3_Click(object sender, EventArgs e) { Response.Write("<script>window.close()</script>"); }
(3)右擊網(wǎng)站資源管理器中的“添加新項(xiàng)”,在“添加新項(xiàng)”的對(duì)話框中選擇“Web窗體”,設(shè)置為Newwindow.aspx。在
頁面中添加代碼:
<form id="form1" runat="server"> <div> 這是window.open打開的新窗體!?。? </div> </form>
(4)運(yùn)行的結(jié)果為:
單擊第一個(gè)按鈕:
點(diǎn)擊第二個(gè)按鈕:
點(diǎn)擊第三個(gè)按鈕,我運(yùn)行了Google,F(xiàn)irefox,2345瀏覽器,第三個(gè)按鈕均沒有彈出提示框,最后使用IE打開有了效果(這是瀏覽器設(shè)置的原因):
以上就是關(guān)于asp.net內(nèi)置對(duì)象Response的實(shí)例介紹,希望對(duì)大家了解Response對(duì)象更有幫助。
相關(guān)文章
MultiLine 換行后實(shí)現(xiàn)讀取不換行的具體思路
輸入內(nèi)容中有換行,保存到數(shù)據(jù)庫(kù),直接查看感覺沒有換行,但查詢結(jié)果“以文本格式顯示結(jié)果”你就會(huì)發(fā)現(xiàn) 其實(shí)是有換行的,下面與大家分享下具體的解決方法2013-06-06ASP.NET Core 1.0實(shí)現(xiàn)郵件發(fā)送功能
這篇文章主要為大家詳細(xì)介紹了ASP.NET Core 1.0實(shí)現(xiàn)郵件發(fā)送功能的相關(guān)資料,需要的朋友可以參考下2016-07-07asp.net core項(xiàng)目授權(quán)流程詳解
本文詳細(xì)講解了asp.net core項(xiàng)目的授權(quán)流程,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-09-09ASP.NET MVC 4 中的JSON數(shù)據(jù)交互的方法
本篇文章主要介紹了ASP.NET MVC 4 中的JSON數(shù)據(jù)交互的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-04-04asp.net數(shù)據(jù)綁定DataBind使用方法
asp.net數(shù)據(jù)綁定DataBind使用方法,大家參考使用吧2013-12-12.Net基于Thread實(shí)現(xiàn)自旋鎖的三種方式
本文主要講解.Net基于Thread實(shí)現(xiàn)自旋鎖的三種方式,基于Test--And--Set原子操作實(shí)現(xiàn),包含優(yōu)缺點(diǎn)介紹,感興趣的朋友跟隨小編一起看看吧2021-06-06python scrapy項(xiàng)目下spiders內(nèi)多個(gè)爬蟲同時(shí)運(yùn)行的實(shí)現(xiàn)
這篇文章主要介紹了python scrapy項(xiàng)目下spiders內(nèi)多個(gè)爬蟲同時(shí)運(yùn)行的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04