如何使用angularJS,web api

时间:2016-06-10 14:28:32

标签: javascript angularjs web asp.net-web-api

我是angularJS的新手,并试图找出,如何将数据发布到我的服务器,问题是我的帖子到服务器是成功的,它创建了新记录,但都是空的(null)。

感谢您的任何建议

JS:

    $scope.addChannel = function () {
    var channels = [];
    //var newChannel = {
    //    Name: $scope.Name
    //};
    //clearing error message
    $scope.errorMessage = "";

    $http.post("api/Channel/channels", newChannel)
        .success(function (newChannel) {
            //on success
            $scope.channels.push({ "Name": $scope.Name });
            console.log("data added");
           // newChannel.push(response.data);
            newChannel = {};
        }, function () {
            //on failure
            $scope.errorMessage = "Failed to save data";
        })
}

HTML:

<div ng-controller="ChannelController">
<div class="col-md-4 col-lg-4 col-sm-4">
    <form novalidate name="newUser"ng-submit="addChannel()">
        <div class="form-group">
            <label for="name">Channel</label>
            <input class="form-control" type="text" id="Name" name="Name" ng-model="newChannel.Name" />
        </div>
        <div class="form-group">
            <input type="submit" value="Add" class="btn btn-success" />
        </div>
    </form>
    <a ng-href="/Dashboard#/channels">Return to dashboard</a>
</div>
<div class="has-error" ng-show="errorMessage">
    {{errorMessage}}
</div>

频道控制器

        [HttpPost("channels")]
    public async System.Threading.Tasks.Task Create(Channel channel)
    {
        await _channelRepository.CreateChannel(channel);
    }

存储库

        public async System.Threading.Tasks.Task CreateChannel(Channel channel)
    {
        _context.Channel.Add(channel);
        await _context.SaveChangesAsync();
    }

1 个答案:

答案 0 :(得分:0)

检查是否在发送给服务器的对象中正确命名属性,属性名称区分大小写。看起来你有js

var customer = {name: 'foo', lastName: 'bar'};

并在服务器上尝试将JSON反序列化为此实体

class Customer {
  public Name {get;set;} //note prop names are capitalized
  public LastName {get;set;}
}