asp.net *.ashx類(lèi)型的文件使用說(shuō)明
更新時(shí)間:2009年11月11日 01:12:03 作者:
你想創(chuàng)建一個(gè)ASP.NET文件,它不是aspx文件,它能動(dòng)態(tài)的返回一個(gè)圖片、XML文件或其他非HTML文件。
解決方案:使用ashx文件。
1. 使用ASHX handlers
首先,我們要回顧要使用ASHX文件的目標(biāo),我們要做的是在一個(gè)地址中用ASHX文件并動(dòng)態(tài)的返回內(nèi)容。
我們將用到querystring,最后的地址格式為(例子):
http://dotnetperls.com/?file=name
開(kāi)始:通過(guò)這幾個(gè)步驟你可以添加一個(gè)新的ashx文件:打開(kāi)你的ASP.NET web site;右擊項(xiàng)目選擇
“Add New Item...”;將顯示一個(gè)“Add New Item”的對(duì)話(huà)框,選擇“Generic Handler”。此時(shí),你就
會(huì)得到一個(gè)新的ashx文件。
2.自動(dòng)生成代碼
我們需要注意的是在ashx文件中自動(dòng)生成的代碼。它定義了IHttpHandler接口的兩部分。非常重要的一
部分是ProcessRequest(),它將決定這個(gè)ashx文件是被請(qǐng)求還是被顯示。你不能修改這個(gè)繼承的接口或刪
除它的方法。
3.映射handler
映射一個(gè)older URL或一個(gè)路徑到你的新ashx文件通常是可取的。為了向后兼容和優(yōu)化搜索引擎,你獲取
希望這個(gè)handler能接管一個(gè)old URL。如何來(lái)實(shí)現(xiàn)呢?用urlMappings;
<system.web>
<urlMappings enabled="true">
<add url="~/Default.aspx" mappedUrl="~/Handler.ashx"/>
</urlMappings>
URL mappings:上面的web.config配置將自動(dòng)連接一個(gè)URL到另一個(gè)URL。現(xiàn)在,當(dāng)Default.aspx被請(qǐng)求時(shí)
,你的ashx文件將接管。這個(gè)意思就是說(shuō),你能映射Default.aspx到你的handler。
4.添加一個(gè)圖片
在這里,我們談?wù)摰搅四阌胊shx文件能做什么。找一個(gè)你喜歡的圖片。把它添加到你的網(wǎng)站項(xiàng)目中。例如
,我選擇了一個(gè)圖片“Flower1.png”。下面,我們將在ashx文件中用到這個(gè)圖片。
5.修改ashx文件
你的ashx文件中有兩部分,在這里,我們必須修改ProcessRequest()方法。我們能改變這個(gè)文件的
ContentType和Response內(nèi)容。按照下面的方法修改你的ashx文件。
~~~ ASHX code-behind file (C#) ~~~
using System;
using System.Web;
public class Handler : IHttpHandler {
public void ProcessRequest (HttpContext context) {
// Comment out these lines first:
// context.Response.ContentType = "text/plain";
// context.Response.Write("Hello World");
context.Response.ContentType = "image/png";
context.Response.WriteFile("~/Flower1.png");
}
public bool IsReusable {
get {
return false;
}
}
}
1. 使用ASHX handlers
首先,我們要回顧要使用ASHX文件的目標(biāo),我們要做的是在一個(gè)地址中用ASHX文件并動(dòng)態(tài)的返回內(nèi)容。
我們將用到querystring,最后的地址格式為(例子):
http://dotnetperls.com/?file=name
開(kāi)始:通過(guò)這幾個(gè)步驟你可以添加一個(gè)新的ashx文件:打開(kāi)你的ASP.NET web site;右擊項(xiàng)目選擇
“Add New Item...”;將顯示一個(gè)“Add New Item”的對(duì)話(huà)框,選擇“Generic Handler”。此時(shí),你就
會(huì)得到一個(gè)新的ashx文件。
2.自動(dòng)生成代碼
我們需要注意的是在ashx文件中自動(dòng)生成的代碼。它定義了IHttpHandler接口的兩部分。非常重要的一
部分是ProcessRequest(),它將決定這個(gè)ashx文件是被請(qǐng)求還是被顯示。你不能修改這個(gè)繼承的接口或刪
除它的方法。
3.映射handler
映射一個(gè)older URL或一個(gè)路徑到你的新ashx文件通常是可取的。為了向后兼容和優(yōu)化搜索引擎,你獲取
希望這個(gè)handler能接管一個(gè)old URL。如何來(lái)實(shí)現(xiàn)呢?用urlMappings;
復(fù)制代碼 代碼如下:
<system.web>
<urlMappings enabled="true">
<add url="~/Default.aspx" mappedUrl="~/Handler.ashx"/>
</urlMappings>
URL mappings:上面的web.config配置將自動(dòng)連接一個(gè)URL到另一個(gè)URL。現(xiàn)在,當(dāng)Default.aspx被請(qǐng)求時(shí)
,你的ashx文件將接管。這個(gè)意思就是說(shuō),你能映射Default.aspx到你的handler。
4.添加一個(gè)圖片
在這里,我們談?wù)摰搅四阌胊shx文件能做什么。找一個(gè)你喜歡的圖片。把它添加到你的網(wǎng)站項(xiàng)目中。例如
,我選擇了一個(gè)圖片“Flower1.png”。下面,我們將在ashx文件中用到這個(gè)圖片。
5.修改ashx文件
你的ashx文件中有兩部分,在這里,我們必須修改ProcessRequest()方法。我們能改變這個(gè)文件的
ContentType和Response內(nèi)容。按照下面的方法修改你的ashx文件。
~~~ ASHX code-behind file (C#) ~~~
復(fù)制代碼 代碼如下:
using System;
using System.Web;
public class Handler : IHttpHandler {
public void ProcessRequest (HttpContext context) {
// Comment out these lines first:
// context.Response.ContentType = "text/plain";
// context.Response.Write("Hello World");
context.Response.ContentType = "image/png";
context.Response.WriteFile("~/Flower1.png");
}
public bool IsReusable {
get {
return false;
}
}
}
您可能感興趣的文章:
相關(guān)文章
用擴(kuò)展方法優(yōu)化多條件查詢(xún)(不定條件查詢(xún))
在我們開(kāi)發(fā)過(guò)程中,特別是管理系統(tǒng)的開(kāi)發(fā),經(jīng)常會(huì)遇到多條件查詢(xún)(或者叫不定條件查詢(xún))的案例,就是提供給User輸入的查詢(xún)條件有多個(gè)不同的查詢(xún)欄位,而且,在實(shí)際使用中并不能確定User會(huì)使用哪些條件來(lái)當(dāng)做搜索條件2012-12-12Asp.net FCKEditor 2.6.3 上傳文件沒(méi)有權(quán)限解決方法
到Fckeditor官方網(wǎng)站下載FredCK.FCKeditorV2.vs2005 (asp.net)2009-02-02Javascript調(diào)用Webservice的多種方法
通過(guò)xmlhttp+webservice(原始方法)2009-02-02asp.net 通過(guò)UserAgent判斷智能設(shè)備(Android,IOS)
搜集了比較全的 智能設(shè)備 的 Agent,然后又寫(xiě)了程序,需要的朋友可以參考下2011-10-10ASP.NET?Core?使用SignalR推送服務(wù)器日志的過(guò)程記錄
這篇文章主要介紹了ASP.NET?Core?使用SignalR推送服務(wù)器日志的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2024-01-01.net下實(shí)現(xiàn)Word動(dòng)態(tài)填加數(shù)據(jù)打印
.net下實(shí)現(xiàn)Word動(dòng)態(tài)填加數(shù)據(jù)打印...2007-04-04