gpt4 book ai didi

c# - 通过 jQuery Ajax 请求从 .ashx 文件调用不同的方法

转载 作者:行者123 更新时间:2023-11-30 22:04:52 25 4
gpt4 key购买 nike

我正在开发一个 ASP.NET Web Forms 应用程序,在前端我有 jquery DataTable,一开始使用来自和到 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...
}
}

但是将所有这些逻辑放在一个地方变得越来越困难,所以我想调用不同的方法但同时将它们保持在同一个类 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-handler,您可以根据您的 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));
}
}

关于c# - 通过 jQuery Ajax 请求从 .ashx 文件调用不同的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24803404/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com