Передача сложного объекта из угловой JS-фабрики в веб-API с использованием $ resource

0

Я передаю объект на угловой завод, он бросает ошибку.

завод:

visitorApp.factory('loginRepository', function ($resource) {  

    return {
        VerifyVisitor: $resource('/api/VisitorWeb/VerifyLogin', {}, {
            query: { method: 'POST', params: {loginModel:loginModel}, isArray: true }
        })

    };

});

Сложный объект, который я пытаюсь передать, - loginModel.

От вызова контроллера к заводу.

visitorApp.controller('LoginController', function ($scope,$location,$route,loginRepository) {
    $scope.submit = function (isValid) {
        if (isValid) {
            var loginModel = {
                UserName: $scope.UserName,
                PassWord: $scope.Password
            };

            var response = loginRepository.VerifyVisitor.query(loginModel);
            alert(response);

        }
    }
});

Error: loginModel is not defined

Web Api Method, который вызывается.

 [HttpPost]
        public string VerifyLogin(UserLoginDomainModel loginModel)
        {
            var msg = _loginService.Login(loginModel);
            return msg;
        }

Правильный способ использования $ resource для отправки запроса и передачи сложного объекта.

  • 0
    Ошибка происходит в Angular или на стороне .NET?
  • 0
    @ MikeFeltman - ошибка в файле фабрики в угловых js. Он не может получить модель входа в систему. Так что я хочу знать, что я прохожу правильно или нет, и что тогда, если не это.
Показать ещё 2 комментария
Теги:
asp.net-web-api

1 ответ

0

Ваш сервис должен выглядеть примерно так:

visitorApp.factory('loginRepository', function ($resource) {  
    return {
        VerifyVisitor: $resource('/api/VisitorWeb/VerifyLogin', {}, 
        {
        query: {
            method: 'POST', 
            params: {loginModel: '@loginModel'}, 
           isArray: true }
       })

    };

});

Переменные параметров заключены в кавычки и с префиксом @.

  • 0
    с помощью вышеуказанных изменений, это, кажется, работает. Я получаю звонок на стороне сервера тоже. Я вызываю этот метод с помощью этого var response = loginRepository.VerifyVisitor.query (loginModel) ;. Теперь я жду ответа от сервера и что-то с ним сделаю. но значение не приходит в объекте ответа
  • 1
    Возможно, вы захотите установить точку останова на сервере в этот момент, осмотреть входящий объект и убедиться, что это то, что вы ожидаете, а затем перейти оттуда.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню