注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

共享圈

www.gxquan.com的同步博客,保存高质量文章之用

 
 
 

日志

 
 

ASP.NET 一般处理程序(ASHX格式文件)相关知识  

2012-12-13 10:33:41|  分类: ASP.NET WEB |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

 
首先说明一下为什么要使用一般处理程序而不是ASPX对于 ASP.NET 网站来说,网站最常见的处理结果就是 HTML 网页,生成网页的工作通常使用扩展名为 ASPX 的 Web 窗体来完成。但ASPX返回给用户的是HTML文件,而AJAX一般只需要返回某些有用的数据(例如验证码、XML、图片等)。所以ASPX就不适用于此类情况,最佳的解决方案应该是使用一般处理程序。一般处理程序是 ASP.NET 网站中最为简单、高效的处理程序。
例子:使用一般处理程序生成 JSON

在 AJAX 程序中,经常需要向浏览器返回 JSON 格式的数据结果,JSON ( JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它是基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。

对于服务器端来说,所谓的 JSON 实际上就是一段字符,我们可以直接通过拼接字符串的形式来生成。需要注意的是,JSON 中通过 { } 来表示对象,这两个符号与 c# 字符格式化串中使用的展位符号 { } 冲突,为了在格式化串中使用 { } ,可以将符号重复一次即可。例如,当需要输出一个 { 的时候,在 C# 的字符串中需要连续写两个 {{ 。

新建一个一般处理程序文件yiban.ashx,然后在这个文件里面写如下代码  

//-------------------yiban.ashx www.gxquan.com---------------------------

/*

IHttpHandler接口只定义了两个成员:方法ProcessRequest和布尔值IsReusable。


IsReusable属性返回false,表示需要该HTTP请求的新实例来服务一个页面请求。

通常我们使它在所有情况下都返回false,并根据请求负荷的不同而要求它做一些有意义的处理。

那些被用作筛选特殊请求的简单屏障的处理程序可以将IsReusable设置为true,以节省一些CPU周期。


void ProcessRequest(HttpContext context);它以请求的上下文context作为输入,并确保该请求得到服务。

在同步处理程序的情况下,当ProcessRequest返回时,准备把输出发到客户端。

*/

using System;
using System.Web;


public class GenericHandler1 : IHttpHandler
{

public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
string json = "{'id':'123'}";//JSON的格式参看http://www.w3school.com.cn/json/index.asp
context.Response.Write(json);
}

public bool IsReusable
{
get{return false;}
}
}


前台用ajax访问yiban.ashx文件就可以得到json 数据了
  评论这张
 
阅读(113)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017