Jquery DataTable将参数传递给ajax调用asp.net.无效的JSON原语



下面是我用服务器数据填充HTML表的java脚本代码,我使用Jquery DataTables来实现这一目的。

function LoadData(result) {
$('#example').DataTable({
"ajax": {
   "dataType": 'json',
   "contentType": "application/json; charset=utf-8",
   "type": "POST",
   "url": "index.aspx/Risky",
   "data": function (d) {
    return JSON.stringify( d )
    //return JSON.stringify(result);
    // d.extra_search = result;      
    //"extra_search": result
   },
   "dataSrc": function (json) {
       return $.parseJSON(json.d);
   }
},
"columns": [
    { "data": "Prctice_Group_Risk_No" },
    { "data": "Practice_Group" },
    { "data": "Risk_Category" },
 ]
});
}

下面是我的代码背后的网络方法描述

[WebMethod]
[ScriptMethod]
public static string Risky()
{
  return JsonConvert.SerializeObject(riskList);
}

到目前为止,它工作得很好,我的web方法被调用,我的HTML表被填充。

但我的问题是,我想将变量"result"作为参数传递给这个ajax调用,这样我的web方法就可以接收它,并根据这个参数向我返回特定的数据。

我去过https://datatables.net/reference/option/ajax.data并尝试遵循那里描述的所有方法,通过我的ajax调用传递额外的数据,正如你在我的java脚本代码中看到的那样,三行有注释的代码,我尝试了三种不同的方法,但都不适用,这导致我在firebug调试器中遇到了一个相同的问题,"无效的JSON原语"和一个500服务器状态代码。我可以在firebug调试器中看到,传递给方法的参数是"extra_search=123"

我可以从错误描述中猜测,我添加这个额外参数的方式是不正确的,例如,不知何故,它没有生成正确的json格式。但我不知道如何纠正。

任何人都可以帮忙。

在@Sanjay Kumar NS和这个链接的帮助下

https://datatables.net/forums/discussion/24546/ajax-data-invalid-json-primitive-error

我可以解决我的问题。问题是没有有效的格式化JSON数据被发送到服务器,因此服务器抛出了"无效JSON原语"的异常

以下是从DataTable函数中发送包含额外数据的ajax调用的正确格式

function LoadData(result) {
$('#example').DataTable({
"ajax": {
"dataType": 'json',
"contentType": "application/json; charset=utf-8",
"type": "POST",
"url": "index.aspx/Risky",
"data": function (d) {
 return "{FileName:" + result+ "}";
},
"dataSrc": function (json) {
   return $.parseJSON(json.d);
}
},
"columns": [
{ "data": "Prctice_Group_Risk_No" },
{ "data": "Practice_Group" },
{ "data": "Risk_Category" },
]
});
}

试试这个:

function LoadData(result) {
   $('#example').DataTable({
        "ajax": {
                "url": "index.aspx/Risky",
                "data": function(d) {
                        d.param1  = 'param1';
                }
        },
        "aoColumns": [
            { "data": "Prctice_Group_Risk_No" },
            { "data": "Practice_Group" },
            { "data": "Risk_Category" }
        ]
    });
}

相关内容

  • 没有找到相关文章

最新更新