你想创建一个ASP.NET文件,它不是aspx文件,它能动态的返回一个图片、XML文件或其他非HTML文件。

解决方案:使用ashx文件。 
1. 使用ASHX handlers 
首先,我们要回顾要使用ASHX文件的目标,我们要做的是在一个地址中用ASHX文件并动态的返回内容。 
我们将用到querystring,最后的地址格式为(例子): 
http://dotnetperls.com/?file=name 
开始:通过这几个步骤你可以添加一个新的ashx文件:打开你的ASP.NET web site;右击项目选择 
“Add New Item...”;将显示一个“Add New Item”的对话框,选择“Generic Handler”。此时,你就 
会得到一个新的ashx文件。 
2.自动生成代码 
我们需要注意的是在ashx文件中自动生成的代码。它定义了IHttpHandler接口的两部分。非常重要的一 
部分是ProcessRequest(),它将决定这个ashx文件是被请求还是被显示。你不能修改这个继承的接口或删 
除它的方法。 
3.映射handler 
映射一个older URL或一个路径到你的新ashx文件通常是可取的。为了向后兼容和优化搜索引擎,你获取 
希望这个handler能接管一个old URL。如何来实现呢?用urlMappings;

<system.web> 
<urlMappings enabled="true"> 
<add url="~/Default.aspx" mappedUrl="~/Handler.ashx"/> 
</urlMappings>

URL mappings:上面的web.config配置将自动连接一个URL到另一个URL。现在,当Default.aspx被请求时 
,你的ashx文件将接管。这个意思就是说,你能映射Default.aspx到你的handler。 
4.添加一个图片 
在这里,我们谈论到了你用ashx文件能做什么。找一个你喜欢的图片。把它添加到你的网站项目中。例如 
,我选择了一个图片“Flower1.png”。下面,我们将在ashx文件中用到这个图片。 
5.修改ashx文件 
你的ashx文件中有两部分,在这里,我们必须修改ProcessRequest()方法。我们能改变这个文件的 
ContentType和Response内容。按照下面的方法修改你的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; 
} 
} 
}

asp.net *.ashx类型的文件使用说明的更多相关文章

  1. ASP.NET应用程序的文件类型及文件夹列表

    文件类型: 1. *.aspx文件:这类文件是ASP.NET Web页面,它包括用户接口和隐藏代码. 2. *.ascx文件:这类文件是用户控件.用户控件同Web页面非常相似,但用户不能直接访问用户控 ...

  2. 百度Web富文本编辑器ueditor在ASP.NET MVC3项目中的使用说明

    ====================================================================== [百度Web富文本编辑器ueditor在ASP.NET M ...

  3. Asp.Net实现无刷新文件上传并显示进度条(非服务器控件实现)(转)

    Asp.Net实现无刷新文件上传并显示进度条(非服务器控件实现) 相信通过Asp.Net的服务器控件上传文件在简单不过了,通过AjaxToolkit控件实现上传进度也不是什么难事,为什么还要自己辛辛苦 ...

  4. [Asp.net 5] Options-配置文件(2)

    很久之前写过一篇介绍Options的文章,2016年再打开发现很多变化.增加了新类,增加OptionMonitor相关的类.今天就对于这个现在所谓的新版本进行介绍. 老版本的传送门([Asp.net ...

  5. Android 各种MIME类型和文件类型的匹配表

    MIME:全称Multipurpose Internet Mail Extensions,多功能Internet 邮件扩充服务.它是一种多用途网际邮件扩充协议,在1992年最早应用于电子邮件系统,但后 ...

  6. 关于asp.net C# 导出Excel文件 打开Excel文件格式与扩展名指定格式不一致的解决办法

    -----转载:http://blog.csdn.net/sgear/article/details/7663502 关于asp.net C# 导出Excel文件 打开Excel文件格式与扩展名指定格 ...

  7. linux列出一个目录及其子目录下面的某种类型的文件

    linux列出一个目录及其子目录下面的某种类型的文件 作者:smarteng ⁄ 时间:2009年07月09日 ⁄ 分类: Linux命令 ⁄ 评论:0 怎么样把,一个目录及其所有的子目录下面的某种类 ...

  8. asp.net 引发类型为“System.OutOfMemoryException”的异常

    asp.net 引发类型为“System.OutOfMemoryException”的异常通常发生在IIS进程获取不到内存时. 临时解决方法是: 回收IIS的应用程序池. 如果要比较好的解决办法是: ...

  9. 基于 Vue.js 之 iView UI 框架非工程化实践记要 使用 Newtonsoft.Json 操作 JSON 字符串 基于.net core实现项目自动编译、并生成nuget包 webpack + vue 在dev和production模式下的小小区别 这样入门asp.net core 之 静态文件 这样入门asp.net core,如何

    基于 Vue.js 之 iView UI 框架非工程化实践记要   像我们平日里做惯了 Java 或者 .NET 这种后端程序员,对于前端的认识还常常停留在 jQuery 时代,包括其插件在需要时就引 ...

随机推荐

  1. Virtualbox环境中安装Oracle 11gr2 RAC(ASM)

    系统Oracle Linux 6.5,Oracle 11.2.0.1 终于开始安装ASM和RAC的行程了.开始前需要想清楚的几个事情: 如何规划网络配置(配置多网卡,实现连通性,规划内外网,eth0, ...

  2. 64位的centos6.9的vnc-sever的安装及桌面环境安装

    1.VNC (Virtual Network Computer)是虚拟网络计算机的缩写.VNC 是在基于 UNIX 和 Linux 操作系统的免费的开源软件,远程控制能力强大,高效实用,其性能可以和 ...

  3. javascript快速入门20--Cookie

    Cookie 基础知识 我们已经知道,在 document 对象中有一个 cookie 属性.但是 Cookie 又是什么?“某些 Web 站点在您的硬盘上用很小的文本文件存储了一些信息,这些文件就称 ...

  4. java源码阅读HashSet

    1类签名与注解 public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneabl ...

  5. [Typescript] Improve Readability with TypeScript Numeric Separators when working with Large Numbers

    When looking at large numbers in code (such as 1800000) it’s oftentimes difficult for the human eye ...

  6. Solution of NumberOfDiscIntersections by Codility

    question:https://codility.com/programmers/lessons/4 this question is seem like line intersections qu ...

  7. POJ 3083:Children of the Candy Corn(DFS+BFS)

    Children of the Candy Corn Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 9311 Accepted: ...

  8. Java并发包——Blockingqueue,ConcurrentLinkedQueue,Executors

    背景 通过做以下一个小的接口系统gate,了解一下mina和java并发包里的东西.A系统为javaweb项目,B为C语言项目,gate是本篇须要完毕的系统. 需求 1. A为集群系统,并发较高,会批 ...

  9. Linux——Ubuntu下Sublime Text 2的安装

    Sublime Text 2是一款共享软件,收费但可以永久免费试用的编辑器,价格是59个美刀,相信开发者一定不了解中国人,也不面对中国市场,.言归正传,ST2编辑功能强大,好评如潮,在Windows/ ...

  10. 【C++基础 03】do...while(0)妙用

    我的主题是,有时候知道一些细节会让你写出更好的代码. ============================================ 之前学coocs2d-x的时候,发现有非常多do...w ...