WebApi AngularJS"请求无效"错误

时间:2014-05-22 21:31:46

标签: c# angularjs asp.net-mvc-4 asp.net-web-api

我正在开发ASP.NET WebApi / AngularJS项目。现在我想显示一张桌子。去' / api / Auftraege'显示Json数据。但是' / api / Auftaege / index'带来这个错误:

{"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图表中,&nullable = true',因为有零的条目。这不起作用。
知道我能做什么吗?我是否遗漏了数据库以外的其他内容?也许是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-repeat(如果我运行Index.cshtml,则弹出名为ListCtrl的角度控制器的错误警告):

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

1 个答案:

答案 0 :(得分:1)

如果这是Web Api REST服务,则您不需要或不必包含方法的名称。您只能在没有控制字的情况下引用Controller类,如下所示:

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