Да, я знаю, что существует огромное количество сообщений об отправке данных массива с использованием angular $esource. Я прочитал это, это и почти 10 лучших результаты Google по этой теме, но я все еще не могу заставить его работать. Я подозреваю, что это может быть связано с API на стороне сервера, но я действительно не уверен.
Пожалуйста, помогите мне понять это. Я пытаюсь отправить массив данных в .NET API, используя angular $resource.
$ Ресурс:
ResourceModule.service('PartProgramsResource', function ($resource) {
var url = _baseUrl + '/parts/:partId/programs'
return $resource(url, { partId: '@partId' }, {
add: {method: 'POST', isArray: true}
});
})
Внутренний контроллер:
app.controller("EditPartCtrl", function ($scope, PartProgramsResource){
$scope.save = function(){
var programsToSave = ["program 1", "program2"];
var resource = new PartProgramsResource(programsToSave);
resource.$add({ partId: $scope.part.id });
}
}
Отладчик:
Надеюсь, я не ошибаюсь, но мне кажется, что мой массив превращается в объект?? с индексом массива в качестве ключа? или так выглядит массив в полезной нагрузке запроса?
.NET API:
[HttpPost]
[Route("{partId:int:min(1)}/programs"
, Name = ApplicationApiRoutes.Parts.AddPartPrograms)]
[ResponseType(typeof(IEnumerable<KeyValueOutput>))]
public HttpResponseMessage AddPartPrograms([FromUri] int partId, [FromBody] List<string> programNames)
{
return Execute(() => _partFacade.AddPartPrograms(partId, programNames.ToArray(), CurrentUser));
}
Вызов API с указанным выше ресурсом вызовет ошибку System.NullReferenceException. Параметр programNames имеет значение null.
Когда я просматривал сообщения stackoverflow по этой теме, я в основном видел, что используется этот синтаксис:
var resource = new PartProgramsResource();
resource.$add({ partId: $scope.part.id }, programsToSave);
Однако это никогда не работает для меня, и полезная нагрузка запроса будет пустым объектом.
Любая помощь будет оценена, так как я абсолютно, ужасно застрял....
resource.$add({ partId: $scope.part.id, programNames: programsToSave });
- person devqon   schedule 12.06.2015resource.$add({ partId: $scope.part.id }, { programNames: programsToSave });
- person devqon   schedule 12.06.2015