asp.net內(nèi)置對(duì)象 Response對(duì)象使用介紹
Response對(duì)象是HttpRespone類(lèi)的一個(gè)實(shí)例。該類(lèi)主要是封裝來(lái)自ASP.NET操作的HTTP相應(yīng)信息。Response對(duì)象將數(shù)據(jù)作為請(qǐng)求的結(jié)果從服務(wù)器發(fā)送到客戶(hù)瀏覽器中,并提供有關(guān)響應(yīng)的消息。它可用來(lái)在頁(yè)面中輸出數(shù)據(jù),在頁(yè)面中跳轉(zhuǎn),還可以傳遞各個(gè)頁(yè)面的參數(shù)。
一、向頁(yè)面中輸出數(shù)據(jù)
語(yǔ)法格式
Response對(duì)象通過(guò)Write方法或WriteFile方法在頁(yè)面輸出數(shù)據(jù),輸出的對(duì)象可以是字符,字符串,字符數(shù)組,對(duì)象或文件。
用Response輸出數(shù)據(jù)時(shí),ASP.NET最重要的語(yǔ)法是:Response.Write(...);
實(shí)例:
(1)建立一個(gè)ASP.NET空網(wǎng)站,將網(wǎng)頁(yè)的標(biāo)題設(shè)置為“在頁(yè)面中輸出數(shù)據(jù)”。
(2)右擊資源管理器中的項(xiàng)目名稱(chēng),選擇“添加新項(xiàng)”命令,在彈出的添加新項(xiàng)的對(duì)話(huà)框中選擇“文本文件”,名稱(chēng)設(shè)置為“WriteFile.txt”。
(3)在WriteFile.txt文本文件中輸入如下文本:
English can be displayed normally. For example,this is a book.<br/> 但是中文文字需要設(shè)置一下:<br/> 即在Response.Write開(kāi)始寫(xiě)上如下的語(yǔ)句:<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é)果為:
二、向頁(yè)面輸出圖像文件
1)利用WriteFIle方法
語(yǔ)法格式
該方法將圖片文件以文件流的方式輸出到客戶(hù)端頁(yè)面。該方法使用使用之前,必須通過(guò)ContentType屬性定義文件流是什么類(lèi)型文件。
Response.ContentType="image/JPEG";
Response.WriteFile(包含圖片的文件名);
實(shí)例
(1)我們可以利用Windows系統(tǒng)自帶的畫(huà)圖工具簡(jiǎn)易畫(huà)一個(gè)圖像,也可以從網(wǎng)上下載一個(gè)圖像,保存在本地硬盤(pán)文件系統(tǒng)中,文件名設(shè)置為tempimage.jpg。
(2)在本地硬盤(pán)文件系統(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方法輸出圖像
語(yǔ)法格式
通過(guò)Response對(duì)象的BInaryWrite方法輸出二進(jìn)制圖像格式如下:
byte[] buffer=new byte[整型文件長(zhǎng)度];
Response.BinaryWrite(buffer);
實(shí)例
(1)從網(wǎng)上找一個(gè)*.gif文件,保存到本地硬盤(pán)文件系統(tǒng)中,文件名設(shè)置為picture.gif。
(2)右擊網(wǎng)站資源管理,選擇“添加現(xiàn)有項(xiàng)”,彈出“添加現(xiàn)有項(xiàng)”對(duì)話(huà)框,找到你保存圖片的本地位置,點(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) { //打開(kāi)圖片文件,并存在文件流中 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ù)寫(xiě)入給定緩沖區(qū)中 stream.Close();//關(guān)閉流 Response.BinaryWrite(Buffer);//將圖片輸出在頁(yè)面上 //設(shè)置頁(yè)面的輸出格式 Response.ContentType = "image/gif"; Response.End();//中止頁(yè)面的其他輸出 } }
(4)運(yùn)行的結(jié)果為:
三、頁(yè)面跳轉(zhuǎn)
Response對(duì)象的Redirect和AppendHeader方法均可實(shí)現(xiàn)頁(yè)面重定向功能。Redirect方法較為常用,但該方法在頁(yè)面進(jìn)行跳轉(zhuǎn),即在頁(yè)面打開(kāi)后才執(zhí)行的頁(yè)面重定向。而AppendHeader方法是在頁(yè)面打開(kāi)前執(zhí)行的頁(yè)面重定向。前者還會(huì)執(zhí)行頁(yè)面的一些程序,而后者不會(huì)。
1、AppendHeader方法
語(yǔ)法格式
Response.AppendHeader(Name,Value)
參數(shù)Name為HTTP頭,參數(shù)Value為HTTP頭的值。
HTTP頭是HTTP協(xié)議規(guī)定的請(qǐng)求和響應(yīng)消息都支持的頭域內(nèi)容。HTTP頭是頁(yè)面通過(guò)HTTP協(xié)議訪(fǎng)問(wèn)頁(yè)面時(shí),最先響應(yīng)的請(qǐng)求和響應(yīng)消息,例如HTTP頭中的Location,Location頭用于將頁(yè)面重定向到另一個(gè)頁(yè)面,與Redirect方法相似。
實(shí)例
(1)建立一個(gè)新的網(wǎng)站,默認(rèn)主頁(yè)為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方法
語(yǔ)法格式
Response.Redirect("重定向網(wǎng)頁(yè)方法")方法
實(shí)例
(1)建立一個(gè)新的網(wǎng)站,默認(rèn)主頁(yè)為Default.aspx。在Default.aspx.cs文件中找到Page_Load函數(shù),在函數(shù)中輸入如下內(nèi)容:
Response.Redirect(@"~/Redirect.aspx");
(2)右擊網(wǎng)站資源管理器,選擇“添加新項(xiàng)”,在“添加新項(xiàng)”對(duì)話(huà)框中選擇“Web窗體”,命名為Redirect.aspx。
(3)在Redirect.aspx窗體中,添加代碼:
<form id="form1" runat="server"> <div>這是重定向頁(yè)!??!</div> </form>
(4)運(yùn)行的結(jié)果為:
四、Response對(duì)象與JavaScript結(jié)合使用
有時(shí)候,我們需要在后臺(tái)服務(wù)器通過(guò)C#語(yǔ)言來(lái)執(zhí)行前臺(tái)客戶(hù)端的JavaScript代碼,有一種方法就是采用Response對(duì)象。采用Response.Write()方法將JavaScript腳本寫(xiě)入客戶(hù)端頁(yè)面的<head></head>中并執(zhí)行,我們來(lái)說(shuō)說(shuō)常用的三種方法:
1、彈出提示對(duì)話(huà)框
Alert在JavaScript中主要用于警告作用,例如將要關(guān)閉一個(gè)網(wǎng)頁(yè)時(shí),可以提醒用戶(hù)網(wǎng)頁(yè)將要關(guān)閉。
Response.Write("<script>alert('這是提示對(duì)話(huà)框')</script>");
2、打開(kāi)窗口
window.open用于打開(kāi)新的窗口,語(yǔ)法格式如下:
Response.Write("<script>window.open(url,windowname[,loctaion])</script>");
可以對(duì)打開(kāi)的新窗口設(shè)置文檔的名稱(chēng),窗口的寬高等一些參數(shù)。
3、關(guān)閉窗口
window.close用于關(guān)閉瀏覽器窗口。
Response.Write("<script>window.close()</script>");
實(shí)例
(1)建立一個(gè)新的網(wǎng)站,默認(rèn)主頁(yè)為Default.aspx,打開(kāi)設(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ì)話(huà)框')</script>"); } protected void Button2_Click(object sender, EventArgs e) { //在新窗口中打開(kāi)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ì)話(huà)框中選擇“Web窗體”,設(shè)置為Newwindow.aspx。在
頁(yè)面中添加代碼:
<form id="form1" runat="server"> <div> 這是window.open打開(kāi)的新窗體?。?! </div> </form>
(4)運(yùn)行的結(jié)果為:
單擊第一個(gè)按鈕:
點(diǎn)擊第二個(gè)按鈕:
點(diǎn)擊第三個(gè)按鈕,我運(yùn)行了Google,F(xiàn)irefox,2345瀏覽器,第三個(gè)按鈕均沒(méi)有彈出提示框,最后使用IE打開(kāi)有了效果(這是瀏覽器設(shè)置的原因):
以上就是關(guān)于asp.net內(nèi)置對(duì)象Response的實(shí)例介紹,希望對(duì)大家了解Response對(duì)象更有幫助。
相關(guān)文章
MultiLine 換行后實(shí)現(xiàn)讀取不換行的具體思路
輸入內(nèi)容中有換行,保存到數(shù)據(jù)庫(kù),直接查看感覺(jué)沒(méi)有換行,但查詢(xún)結(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)流程,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-09-09asp.net中Log4.net的工具類(lèi)helper
這篇文章介紹了asp.net中Log4.net的工具類(lèi)helper,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-04-04ASP.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è)爬蟲(chóng)同時(shí)運(yùn)行的實(shí)現(xiàn)
這篇文章主要介紹了python scrapy項(xiàng)目下spiders內(nèi)多個(gè)爬蟲(chóng)同時(shí)運(yùn)行的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04