日期:2014-05-18  浏览次数:21372 次

“ashx”文件
“ashx”文件的使用。

问题一:“ashx”文件是没有界面的“aspx页面”可以这样理解吗?

1、“ashx”文件定义时。
public class OpenQueryWindow : IHttpHandler
{
  public void ProcessRequest (HttpContext context) 
  {
  //取得相关数据
  List<IDictionary<string, string>> infos;
  switch (context.Request["monitortype"])
  }
  .........................................
  //变换成JSON输出
  var i = 0;
  var jsonstr = new StringBuilder("[");
  foreach (var info in infos)
}

2、使用是用在“AJAX”,如下
 new Ajax.Request(
  '<%=ResolveUrl("~/Web/ReportManger/OpenQueryWindow.ashx")%>',

问题二:“ashx”文件的作用究竟有多大,是什么功能,为什么可以把数据提供给“AJAX”?就是因为单单的转化为了“JSON”???


------解决方案--------------------
问题1:差不多是这样的。ashx学名是是一般处理程序,它的作用就是简单的处理web请求,可以跳过页面复杂的生命周期事件,提供性能,专注于处理业务的逻辑。比如输入参数,返回处理结果。不限于变成json输出,什么形式的都可以。
问题2:你用aspx也可以的,就是性能比不上ashx。同上,不限于json,你返回什么格式的都可以
------解决方案--------------------
1楼的爷们回答的很具体了
就是请求流数据返回用的

数据多种多样,参见content-type

------解决方案--------------------
恩,不是ajax也可以用阿
------解决方案--------------------
是啊。就是处理个数据,把前端的输入数据进行处理,然后再返回给前端
------解决方案--------------------
它就是一个可以接受请求并处理响应的东西。

不过这里面 好像 不可以 用session
------解决方案--------------------
可以用session啊
------解决方案--------------------
1.using System.Web.SessionState;
2.实现IRequiresSessionState接口
3.HttpContext.Current.Session["Session变量名称"]

------解决方案--------------------
JSON就是就是一种字符串格式,按照这种格式输出就可以了啊。

context.Response.ContentType = "application/json";
context.Response.Write("{\"name\":\"xxx\"}");

ashx少了很多事件处理过程和代码解析过程,速度比aspx要快