ng-resource with custom object + Asp.net web api

时间:2015-04-23 01:50:37

标签: angularjs asp.net-web-api2 ngresource

ng-resource - 无法将员工对象传递给web api

Angularjs代码

 app.factory("Entry", function ($resource) {          
 return $resource("/api/Emp/",
                { },
                {

                "update": { method: "PUT" },

                "reviews": { 'method': 'GET', 'params': { "id": 1, 'name':        "ram" }, isArray: true },
               "updateEmp": { 'method': 'GET', 'params': { ng: '@id', id: '@id', Employee: '@emp', status: '@status' }, isArray: true }

                }
            );
        });

postData = [{
                "id": 1,
                "Empname": "The Hitchhiker's Guide to the Galaxy",
                "Address": "Douglas Adams"
            }];

var ent = Entry.updateEmp({ ng: 1, id: 3, employee: JSON.stringify(postData),                                    status: 'test' });

Web API方法

以下是方法:

public IHttpActionResult GetEmployee(int ng,int id, **Employee employee**,string status)
{
}

可以获取除Employee之外的所有值(获取空值)。请告知。

1 个答案:

答案 0 :(得分:0)

您希望发送单个员工,而不是具有单个实例的数组。

尝试用此

替换它
postData = {
                "id": 1,
                "Empname": "The Hitchhiker's Guide to the Galaxy",
                "Address": "Douglas Adams"
            };

此外,您的updateEmp方法需要一个名为@emp的字段,但您已将其称为employee。请将该行更新为以下内容。

"updateEmp": { 'method': 'GET', 'params': { ng: '@id', id: '@id', Employee: '@employee', status: '@status' }, isArray: true }

在您的浏览器中打开开发人员控制台(F12)并在网络下查看XHR并确保请求正确形成也很有用