我建议一个
HttpHandler。没有页面生命周期(因此速度非常快),更清晰的代码分离以及可重用性。
将一个新项添加到您的类型为“通用处理程序”的项目中。这将创建一个新的.ashx文件。实现的任何类的主要方法
IHttpHandler是
ProcessRequest。因此,要使用原始问题中的代码:
public void ProcessRequest (HttpContext context) { if(String.IsNullOrEmpty(context.Request["day"])) { context.Response.End(); } string json = ""; byte[] bytes = getByteArray(); json = JsonConvert.SerializeObject(bytes); context.Response.ContentType = "text/json"; context.Response.Write(json);}更改您的AJAX调用中的网址,应该这样做。Javascript如下所示,其中 GetFileHandler.ashx
是您刚创建的IHttpHandler的名称:
$.ajax( { type: "POST", async: true, url: 'Handlers/GetFileHandler.ashx', data: "Day=" + $.toJSON(day), contentType: "application/json; charset=utf-8", dataType: "json", success: function (msg) { console.log("SUCCESS:" + msg); }, error: function (msg) { console.log("error:" + msg); } });还有一点需要考虑,如果您需要从Handler代码本身内部访问Session对象,请确保从
IRequiresSessionState接口继承:
public class GetFileHandler : IHttpHandler, IRequiresSessionState



