C# 通过jQuery Ajax请求从.ashx文件调用不同的方法
我正在开发一个C# 通过jQuery Ajax请求从.ashx文件调用不同的方法,c#,jquery,asp.net,ajax,C#,Jquery,Asp.net,Ajax,我正在开发一个ASP.NET Web表单应用程序,其中在前端我有jquery DataTable,最初操作DataTable之间的查询有点困难,我看到一个示例,其中.ashx文件用于此目的,它对我来说也很好,所以我最终还是使用了它使用.ashx文件来处理我的数据表,但是现在我需要从不同的地方发出一些Ajax请求,到目前为止,我正在这里编写所有的代码: public class TData : IHttpHandler { public void ProcessRequest(HttpCo
ASP.NET Web表单
应用程序,其中在前端我有jquery DataTable
,最初操作DataTable
之间的查询有点困难,我看到一个示例,其中.ashx
文件用于此目的,它对我来说也很好,所以我最终还是使用了它使用.ashx
文件来处理我的数据表
,但是现在我需要从不同的地方发出一些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...
}
}
但是将所有这些逻辑放在一个地方变得越来越困难,所以我想调用不同的方法,但同时将它们放在同一个类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)
。我使用的是.NET 4.5
,那么有没有办法在同一个类中添加其他方法,并从客户端使用jQuery Ajax
调用它们?如果您真的想使用*.ashx
-处理程序,您可以根据方法
参数重定向流:
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));
}
}
你已经看过
WebAPI
了吗?似乎是做这项工作的更好的工具…@ChrFin是的,但我有义务把它保存在网络表单中,因为大学资格、经验等等。我正在考虑使用.asmx
或使.ashx
选项起作用的方向。我很确定你们的大学更容易理解WebAPI
代码“他们不知道”,然后是一些*。ashx
-黑客<代码>*.asmx
web服务与WebAPI
没有太大区别,除了路由之外,还可以使用一些较新的功能(而且它们也不是“在web表单
boundries”IMO中)。=>也许再和你的大学谈谈,试着说服他们使用为这份工作而设计的工具……附言:我的意思是“他们看起来如何”,而不是“他们在后台的工作方式”!我知道WebAPI
,尽管我对它没有经验。当我们谈论这个项目将要使用什么的时候,我实际上是建议了它。决定不使用它。。这就是我的现实。谢谢。我会用这个,因为似乎没有“正确”的方法来做这类事情.“正确的方法”应该是WebAPI
IMO-有时大学必须“被迫使用新的东西”,但在使用它们之后,它们很快就开始喜欢它们了-不只一次发生在我身上…context.Request[“method”]
返回null,在ajax中,我将数据作为数据:{method:'Vendor'},