mvc4 で angularJS から Web API アクションに配列を渡すことができません。
私の $resource は次のとおりです。
adminApp.factory('presentation', ['$resource',
function ($resource) {
return $resource('/api/presentation/:id', { id: '@id' },
{
update: { method: 'PUT', params: { id: '@id' } },
save: { method: 'POST', params: { model1: '@model1' } },
remove: { method: 'DELETE', params: { id: '@id' } }
}
);
}]);
それを保存するデータの配列を渡すためのAngularJSコード(渡したいpresentationItemList ):
$scope.savePresentation = function() {
if ($scope.form.$valid) {
if ($scope.presentation.Id != undefined && $scope.presentation.Id > 0) {
$scope.presentation.$update({ id: $scope.presentation.Id });
} else {
$scope.presentation.$save({ model1: presentationItemList });
}
} else {
$scope.addFormValidationAlert($scope.form);
}
};
AngularJSで保存アクションの後に呼び出す私の Api アクション:
public HttpResponseMessage Post(PresentationItemModel model, List<PresentationElementInfoModel> model1)
{
var item = Mapper.Map<PresentationItemModel, Presentation>(model);
model.Id = GetActionResultData(ServiceDataProvider.PresentationCrudService.SaveOrUpdate(item));
if (model.Id.MoreThanZero())
{
return new HttpResponseMessage(HttpStatusCode.Accepted)
{
Content = new ObjectContent<PresentationItemModel>(model,
new JsonMediaTypeFormatter())
};
}
throw new HttpResponseException(HttpStatusCode.NotFound);
}
firebugでエラーが表示されます: 「複数のパラメーター ('model' および 'model1') をリクエストのコンテンツにバインドできません」
angularから配列presentationItemListを渡さず、Web APIアクションのmodel1パラメーターにマップしない場合、このコードは正常に機能します。
私を助けてください!