【问题标题】:Sending object with $http in AngularJs在 AngularJs 中使用 $http 发送对象
【发布时间】:2014-09-17 20:05:32
【问题描述】:

Angular 看起来很优雅,但是当我尝试发送这个 $http 请求时,我收到了 500 错误。

    $scope.UpdateOrganization = function (organization) {
        var jsonOrg = JSON.stringify(organization);

        var url = 'Organization/UpdateOrganization/' + organization.ActorId;

        $http({
            method: 'PUT',
            url: url,
            data: jsonOrg,
            headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
        }).success(function (data, status) {
        }).error(function (data, status) {
        });
    }

在接收端,我使用的是 MVC 控制器。方法是这样的:

    // PUT: api/Organization/guid
    [HttpPut]
    public string UpdateOrganization(Guid id, Organization organization)
    {

    }

基本上,我希望 C# 控制器接收 Angular PUT。但是,失败与数据有关:$http调用中的jsonOrg。

澄清一下,我也试过 $http.put() 没有成功。我一定是做错了什么。

【问题讨论】:

  • 您应该真正包含错误。据我快速浏览,操作参数与您传递的 JSON 数据不匹配;应该是data : { id : /* get the guid from somewhere */, organization: jsonOrg }
  • 我认为@PatrykĆwiek 是正确的。从代码看来,您只是将组织对象传递给端点,并没有提供 Guid。

标签: c# javascript asp.net-mvc angularjs


【解决方案1】:

尝试将控制器中的方法签名更改为:

// PUT: api/Organization/guid
[HttpPut]
public string UpdateOrganization(Guid id, [FromBody]Organization organization)
{

}

【讨论】:

    猜你喜欢
    • 2016-01-23
    • 1970-01-01
    • 1970-01-01
    • 2014-04-13
    • 1970-01-01
    • 1970-01-01
    • 2015-04-15
    • 2014-09-25
    • 2015-04-15
    相关资源
    最近更新 更多