在 ajax 调用中使用 datatable url 属性将参数传递给服务器

Posted

技术标签:

【中文标题】在 ajax 调用中使用 datatable url 属性将参数传递给服务器【英文标题】:pass parameter to the server using datatable url property in ajax call 【发布时间】:2017-05-13 13:48:39 【问题描述】:

我正在使用数据表并在 ajax 请求中进行初始化时,我正在使用 data- 属性设置 url

...
 "ajax": 
            "url": $('#mypage').data('source'),
            "type": "GET",
...

网页中嵌入的网址如下所示

 <divid="mypage" data-source=@Url.Action("CalculateSomething")>
 ...
</dv>

在服务器端我期待参数 someId

public JsonResult CalculateSomething(int someId)


我的问题是:

如何使用 datatable 中的 url 属性将参数传递给服务器 上面的ajax调用?

更新 参数将来自 javascript 内的下拉元素中的值,如

var someId = $('#mydropdown').val();

【问题讨论】:

参数从哪里来? 【参考方案1】:

有两种方法,一种是你可以像这样在url中连接:

 "ajax": 
            "url": $('#mypage').data('source')+"someId="+id,
            "type": "GET",

另一种方法是使用 ajax 的 data 属性:

"ajax": 
            "url": $('#mypage').data('source')+"someId=123",
            "type": "GET",
            "data": function (data) 

                            data.someId= 123;

                        

【讨论】:

数据属性是:)【参考方案2】:

检查$.ajax 上的文档。对于参数,您可以使用 data 属性。像这样:

 url: function(e)  return $('#mypage').data('source'); ,
 type: "GET",
 data:
     
         someId: function(e)  return $('#mydropdown').val(); , //here is your param
     ,
 dataType: "json", //it's better to declare datatype, becouse you using JsonResult in your controller response.

【讨论】:

以上是关于在 ajax 调用中使用 datatable url 属性将参数传递给服务器的主要内容,如果未能解决你的问题,请参考以下文章

在 MVC 应用程序中使用 DataTables.NET ajax 调用访问 WebAPI 2 json

为 jquery datatables ajax 调用设置错误处理程序

jquery datatables 列渲染:多个 Ajax 调用

禁用初始自动 ajax 调用 - DataTable 服务器端分页

如何将附加参数传递给 jQuery DataTable ajax 调用?

datatables.net 搜索框 ajax