Asp.net mvc 数据正在使用angular js获取但未填充到剑道网格中

Asp.net mvc 数据正在使用angular js获取但未填充到剑道网格中,asp.net-mvc,angularjs,kendo-ui,Asp.net Mvc,Angularjs,Kendo Ui,我可以从数据库中获取数据,但不能在gridview中填充。 下面是我的代码: angular.module(“app”,[“kendo.directives”]).controller(“MyCtrl”,函数($scope,$http){ $scope.gridOptions={ 列:[{field:“EmployeeKey”},{field:“FirstName”}], 数据源:{ //模式:{ //数据:“d” //}, 类型:“jsonp”, 运输:{ 读:功能(e){ $http({

我可以从数据库中获取数据,但不能在gridview中填充。 下面是我的代码:


angular.module(“app”,[“kendo.directives”]).controller(“MyCtrl”,函数($scope,$http){
$scope.gridOptions={
列:[{field:“EmployeeKey”},{field:“FirstName”}],
数据源:{
//模式:{
//数据:“d”
//},
类型:“jsonp”,
运输:{
读:功能(e){
$http({method'GET',url:'/Employee/Employee_Read'})。
成功(函数(数据、状态、标题、配置){
//警报(“成功”)
//调试器;
e、 成功(数据)
}).
错误(函数(数据、状态、标题、配置){
警惕(“出了点问题”)
控制台日志(状态);
});
}
},
//页面大小:5
}
}
});

因为您返回的是使用
DataSourceResult
方法包装的集合

return Json(employeeRepositary.Employees.ToDataSourceResult(request), JsonRequestBehavior.AllowGet);
而不仅仅是它的收藏

return Json(employeeRepositary.Employees, JsonRequestBehavior.AllowGet);
您需要定义数据源
架构
,请尝试此架构设置

schema: {
     data: "Data",
     errors: "Errors",
     total: "Total",
     model: {
         id: "Id",
         fields: {
             Id: { editable: false, defaultValue: 0 },
             //the rest field definition
         }
     }
}
您可以将您的交通工具的
读取
更改为类似的内容

read: {
    type: "POST",
    url: "/Employee/Employee_Read",
    dataType: "json",
    contentType: "application/json"
}
$scope.gridOptions = {
    columns: [{ field: "EmployeeKey" }, { field: "FirstName" }],
    dataSource: {
        transport: {
            read: {
                type: "POST",
                url: "/Employee/Employee_Read",
                dataType: "json",
                contentType: "application/json"
            },
            parameterMap: function(options, operation) {
                return JSON.stringify(options);
            }
        },
        pageSize: 5,
        schema: {
            data: "Data",
            errors: "Errors",
            total: "Total",
            model: {
                id: "EmployeeKey",
                fields: {
                    EmployeeKey: { editable: false, defaultValue: 0 },
                    FirstName: {type: "string", validation: { required: true }}
                }
            }
        }
    }
}
[AcceptVerbs(HttpVerbs.Get | HttpVerbs.Post)]
public ActionResult Employee_Read ([DataSourceRequest] DataSourceRequest request )
{
    var employees = employeeRepositary.Employees;

    return Json(employees.ToDataSourceResult(request), JsonRequestBehavior.AllowGet);
}
您的最终代码应该是这样的

read: {
    type: "POST",
    url: "/Employee/Employee_Read",
    dataType: "json",
    contentType: "application/json"
}
$scope.gridOptions = {
    columns: [{ field: "EmployeeKey" }, { field: "FirstName" }],
    dataSource: {
        transport: {
            read: {
                type: "POST",
                url: "/Employee/Employee_Read",
                dataType: "json",
                contentType: "application/json"
            },
            parameterMap: function(options, operation) {
                return JSON.stringify(options);
            }
        },
        pageSize: 5,
        schema: {
            data: "Data",
            errors: "Errors",
            total: "Total",
            model: {
                id: "EmployeeKey",
                fields: {
                    EmployeeKey: { editable: false, defaultValue: 0 },
                    FirstName: {type: "string", validation: { required: true }}
                }
            }
        }
    }
}
[AcceptVerbs(HttpVerbs.Get | HttpVerbs.Post)]
public ActionResult Employee_Read ([DataSourceRequest] DataSourceRequest request )
{
    var employees = employeeRepositary.Employees;

    return Json(employees.ToDataSourceResult(request), JsonRequestBehavior.AllowGet);
}
你的控制器是这样的

read: {
    type: "POST",
    url: "/Employee/Employee_Read",
    dataType: "json",
    contentType: "application/json"
}
$scope.gridOptions = {
    columns: [{ field: "EmployeeKey" }, { field: "FirstName" }],
    dataSource: {
        transport: {
            read: {
                type: "POST",
                url: "/Employee/Employee_Read",
                dataType: "json",
                contentType: "application/json"
            },
            parameterMap: function(options, operation) {
                return JSON.stringify(options);
            }
        },
        pageSize: 5,
        schema: {
            data: "Data",
            errors: "Errors",
            total: "Total",
            model: {
                id: "EmployeeKey",
                fields: {
                    EmployeeKey: { editable: false, defaultValue: 0 },
                    FirstName: {type: "string", validation: { required: true }}
                }
            }
        }
    }
}
[AcceptVerbs(HttpVerbs.Get | HttpVerbs.Post)]
public ActionResult Employee_Read ([DataSourceRequest] DataSourceRequest request )
{
    var employees = employeeRepositary.Employees;

    return Json(employees.ToDataSourceResult(request), JsonRequestBehavior.AllowGet);
}

您好,迪翁谢谢您的回复。您能用您的解决方案更正我上面提到的代码吗?因为在这里我无法将代码模式和读取模式集成在一起。您好,迪翁,我与我一起应用了您的集成代码,但gridview没有填充。我也按照您的建议更改了控制器中的代码,但仍然无法工作。您能检查吗你的系统也一样?奇怪,它在我这边工作。。您应该将控制器代码与前一个代码保持一致。。不要更改它,只应用模式..迪翁,我在controller中使用了我以前的代码,没有更改任何内容,使用了您的集成代码并删除了k-rebind属性,但仍然没有在gridview中显示数据。即使我在employee_read函数中设置了断点,也并没有触发断点。这意味着它没有得到正确的路径。它是在一个域中还是不同的域中?如果它在不同的域中,请使用
数据类型:“jsonp”
,并在控制器中添加标记属性以接受HttpPost请求?在控制器操作方法上方添加
[AcceptVerbs(HttpVerbs.Get | HttpVerbs.Post)]
(如果没有)。