我正在使用ASP.NET Web Forms
应用程序,在前端我有jquery DataTable
,开始使用来自{{1}的查询时有点困难我看到一个示例,其中dataTable
文件用于此目的,它也适用于我,所以我最终使用.ashx
文件来处理我的.ashx
但是现在我需要从不同的地方发出一些dataTable
请求,直到现在我在这里编写所有代码:
Ajax
但是将所有这些逻辑保存在一个地方变得越来越难,所以我想调用不同的方法,但同时将它们保持在同一个类public class TData : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
// Those parameters are sent by the plugin
var iDisplayLength = int.Parse(context.Request["iDisplayLength"]);
//more code...
}
}
,以便{{1}的所有逻辑1}}被保存在一个地方。
我试过了:
Tdata
在服务器端使用此代码:
dataTable
但实际上从未调用此方法,似乎使用此语法,请求将直接转到 $.ajax({
url: "/TData.ashx",
type: "GET",
data: { method: 'Test', args: { blabla: 'blabla' } },
});
。我正在使用 public object Test(string blabla)
{
return string.Format("Hello {0}!", blabla);
}
所以有没有办法在同一个类中添加其他方法,并从客户端使用public void ProcessRequest(HttpContext context)
调用它们?
答案 0 :(得分:3)
如果你真的想坚持*.ashx
- 处理程序,你可以根据你的method
参数重定向流程:
public class TData : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
switch (context.Request["method"])
{
case "test":
Test(context);
break;
//other methods
default:
throw new ArgumentException("unknown method");
}
}
public void Test(HttpContext context)
{
// Those parameters are sent by the plugin
var iDisplayLength = int.Parse(context.Request["iDisplayLength"]);
//more code...
context.Response.Write(String.Format("Hello {0}!", blabla));
}
}