2016-06-10 7 views
-1

Ich bin neu zu angularJS und versuchen, herauszufinden, wie man Daten auf meinem Server, Problem ist, dass mein Beitrag zum Server erfolgreich ist und es neue Datensatz erstellen, aber alles ist leer (null)wie man Daten an den Server mit angularJS, Web API

Vielen Dank für jede Beratung

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> 

Kanal-Controller

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

Repository

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

Bitte senden Sie die WebAPI Methode zu –

+0

deserialisieren Was ist 'newChannel' auf $ http.post weitergegeben? Ihre Daten befinden sich in '$ scope.newChannel.Name'. – Paqman

+0

Überprüfen Sie die Signatur des Erfolgsrückrufs: https://docs.angularjs.org/api/ng/service/$http – fantarama

Antwort

0

Überprüfen Sie, ob Sie Eigenschaften korrekt in Objektnamen, die Sie an den Server senden, Eigenschaftsnamen sind Groß- und Kleinschreibung. Sieht aus wie Sie in js

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

und auf Server versuchen Sie Ihre JSON zu dieser Entität

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

Eigenschaftsnamen sollten korrekt sein, verwende ich jede Modelleigenschaft mit Großbuchstaben Anfangsbuchstaben – user3188501

Verwandte Themen