2014-05-22 33 views
0

我正在开发ASP.NET WebApi/AngularJS项目。现在我想要显示一个表格。去'/ api/Auftraege'显示Json数据。但“/ API/Auftaege /指数”带来了这个错误:WebApi AngularJS“请求无效”错误

{"Message":"The request is invalid.","MessageDetail":"The parameters dictionary contains a null entry for parameter 'id' of non-nullable type 'System.Int32' for method 'System.Threading.Tasks.Task`1[System.Web.Http.IHttpActionResult] GetKDAuftraege(Int32)' in 'Vis3.Controllers.AuftraegeController'. An optional parameter must be a reference type, a nullable type, or be declared as an optional parameter."} 

所以我试图改变“ID”的属性中的.edmx图到“可为空=真”,是因为没有与零条目。那没有用。
任何想法我可以做什么?我是否缺少数据库以外的其他东西?也许app.js中的文件路径?

以防万一......

app.js:

function ListCtrl($scope, $http) { 

    $scope.data = []; 
    $http.get("/api/Auftraege/GetKDAuftraeges") 
    .then(function (result) { 

     // Success 
     angular.copy(result.data, $scope.data); 
    }, 
    function() { 

     // Error 
     alert("Error"); 
    }); 

} 

的WebAPI - 控制器:

// GET api/Auftraege 
     [HttpGet] 
     public IEnumerable<KDAuftraege> GetKDAuftraeges() 
     { 
      var result = db.KDAuftraeges.Take(50).ToList(); 

      return result; 
     } 

的Index.cshtml中的NG-重复(如果我运行Index.cshtml,那么来自命名为ListCtrl的角度控制器的错误警报弹出):

<tr ng-repeat="i in data"> 
    <td>{{i.AngebotsNummer}}</td> 
    <td>{{i.VerkaeuferName}}</td> 
    <td>{{i.Bezeichnung}}</td> 
</tr> 

回答

1

如果这是WebApi REST服务,则不需要或必须包含该方法的名称。你只能参考没有词控制器的控制器类,像这样:

$http.get("/api/Auftraege").then(function(){}); 
+0

非常感谢,工作!但是我的app.js中也有一个错误,我错过了将结果传递给函数:-) – oldsport