Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 剑道网格未绑定到ASMX Web服务的JSON结果_Asp.net_Json_Kendo Grid_Asmx - Fatal编程技术网

Asp.net 剑道网格未绑定到ASMX Web服务的JSON结果

Asp.net 剑道网格未绑定到ASMX Web服务的JSON结果,asp.net,json,kendo-grid,asmx,Asp.net,Json,Kendo Grid,Asmx,我在将剑道网格绑定到ASP.NET asmx web服务时遇到问题 下面是HTML代码 <!DOCTYPE html> <html> <head> <title></title> <link rel="stylesheet" href="styles/kendo.common.min.css" /> <link rel="stylesheet" href="styles/kendo.defaul

我在将剑道网格绑定到ASP.NET asmx web服务时遇到问题

下面是HTML代码

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <link rel="stylesheet" href="styles/kendo.common.min.css" />
    <link rel="stylesheet" href="styles/kendo.default.min.css" />
    <link rel="stylesheet" href="styles/kendo.dataviz.min.css" />
    <link rel="stylesheet" href="styles/kendo.dataviz.default.min.css" />
    <link href="styles/kendo.common-bootstrap.min.css" rel="stylesheet" />
    <link href="styles/kendo.bootstrap.min.css" rel="stylesheet" />
    <link href="../BOOTSTRAP/bootstrap.min.css" rel="stylesheet" />
    <script src="../Scripts/jquery-2.0.3.min.js"></script>
    <script src="js/kendo.all.min.js"></script>
    <script src="../BOOTSTRAP/bootstrap.min.js"></script>
</head>
<body>

    <div id="example">
        <div id="grid" class="table table-bordered"></div>
        <script>
            $(document).ready(function () {
                $("#grid").kendoGrid({
                    columns: [
            { field: "srno", title: "SRNO" },
            { field: "party", title: "PARTY" }
                    ],
                    dataSource: new kendo.data.DataSource({
                        transport: {
                            read: {
                                url: "../Service/DatabaseHandling.asmx/GetPurchaseJangad_JSON",
                                dataType: "json",
                                contentType: "application/json; charset=utf-8"
                            }
                        }
                    }),
                    schema: {
                        data: "d"

                    },
                    sortable: true
                });
            });
        </script>
    </div>


</body>
</html>
网格上仍然看不到任何内容。
浏览器控制台中没有错误。

我认为问题只在于JSON数据

修改了下面给出的JSON,将\“替换为”,并删除了方括号前后的引号

{"d":[{"srno":17,"party":"PARESH","dt":"11/5/2015","weight":15000.0,"timestamp":"2015-05-11T20:19:55.093"},{"srno":18,"party":"SIM","dt":"11/5/2015","weight":11000.0,"timestamp":"2015-05-11T20:21:44.177"}]}

我将jQuery代码更改为以下代码

$(document).ready(function () {
        var data;
        var webMethod = "../Service/DatabaseHandling.asmx/GetPurchaseJangad_JSON";
        var parameters = "{}";
        $.ajax({

            contentType: "application/json; charset=utf-8",
            url: webMethod,
            data: parameters,
            dataType: "json",
            success: function (response) {
                data = $.parseJSON(response.d);
                console.log(data);
                $("#grid").kendoGrid({
                    columns: [
            { field: "srno", title: "SRNO" },
            { field: "party", title: "PARTY" },
            { field: "dt", title: "DATE" },
            { field: "weight", title: "WEIGHT" }
                    ],
                    dataSource: {
                        transport: {
                            read: function (options) {
                                options.success(data);
                            }
                        },
                        schema: {

                        }
                    }
                });
            }
        });

    });
我所做的就是通过jQueryAjax调用该服务。获取了包含反斜杠和引号的数据。然后像在代码中一样,使用$.parseJSON获取所需的JSON格式。然后在成功后将数据传递给剑道网格。这就是我的工作方式

但如果可能的话,我仍然在寻找一种在服务器端实现这一点的方法


谢谢

ASMX是一项遗留技术,不应用于新的开发。WCF或ASP.NET Web API应用于Web服务客户端和服务器的所有新开发。一个提示:微软已经停用了MSDN上的。我知道,但是结果JSON没有任何问题,那么为什么网格没有绑定呢?@johnsaunder类似的东西可能会有帮助,但它没有使用MVC。很好,返回的JSON来自asmx服务。你能告诉我如何在asmx级别删除引号和反斜杠引号吗?你的回答对我帮助很大。我在服务器端找不到任何东西来删除这些额外的引号。但在一次ajax调用之后,我在客户端完成了这项工作。然后我把数据传给剑道网格。而且效果很好。我现在发布解决方案。
$(document).ready(function () {
        var data;
        var webMethod = "../Service/DatabaseHandling.asmx/GetPurchaseJangad_JSON";
        var parameters = "{}";
        $.ajax({

            contentType: "application/json; charset=utf-8",
            url: webMethod,
            data: parameters,
            dataType: "json",
            success: function (response) {
                data = $.parseJSON(response.d);
                console.log(data);
                $("#grid").kendoGrid({
                    columns: [
            { field: "srno", title: "SRNO" },
            { field: "party", title: "PARTY" },
            { field: "dt", title: "DATE" },
            { field: "weight", title: "WEIGHT" }
                    ],
                    dataSource: {
                        transport: {
                            read: function (options) {
                                options.success(data);
                            }
                        },
                        schema: {

                        }
                    }
                });
            }
        });

    });