模型不会从控制器传递到工厂和Web API

时间:2014-08-25 14:44:35

标签: angularjs asp.net-web-api

我的问题

我创建了一个基于与我的页面控制器相同型号的工厂。 我遇到的问题是$ scope.model没有进入工厂,因此没有进入webAPI服务,而webAPI服务当然会返回错误,因为webAPI方法的对象是空的。

仅供参考:在下面的代码app中使用angular正确定义。

app.controller('SFOptionsPageController', function ($scope, $http, $location, sfNgLabelsService, saveOptionsDataService) {

$scope.model = { name: 'Me', lastName: 'Last', address: { street: 'streetName', number: 458 }}

[A bit further in my code...]

// Form submit handler that sents my model to the factory, or at least it should.
$scope.submit = function(form) {
    if ($scope.form.$valid) {
        saveOptionsDataService.post(
            $scope.model,            
            function (result, getResponseHeaders) { },
            function (response) { }
        );      
        window.location = $scope.nextPage;
    }
    else {
        $scope.submitted = true;
    }
}

上面的代码正确地调用我的工厂,这不是我唯一的工厂,所以我认为其中存在问题?:

'use strict';
app.config(function ($httpProvider) {
    $httpProvider.defaults.headers.common.Accept = 'application/json;charset=utf-8,*/*;q=0.9';
});

app.factory('savePersonalDetailsDataService', function ($resource) {
    return $resource('/bll/api/ControllerName/savepersonaldetails', {}, {
        post: {
           method: 'POST'
        }
   });
});

app.factory('saveOptionsDataService', function ($resource) {
    return $resource('/bll/api/ControllerName/saveoptionsdata', { }, {
        post: {
            method: 'POST'
        }
    });
});

上面的工厂调用我的.NET webAPI方法,但是那个方法返回一个错误,说明我的对象是空的,当然是不允许的。

我的问题

为什么我的模型没有通过,即使我在检查Chrome的调试器时在请求有效负载中看到它? 我该如何解决这个问题?

0 个答案:

没有答案