“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要快