2017-02-03 1 views
0

Я знаю, что этот вопрос задан раньше, я просмотрел другие ответы, но я не могу исправить проблему. Я продолжаю получать сервер с нулевым объектом при использовании $ http.Get с угловыми js. Может ли кто-нибудь найти то, что им не хватает или что я сделал неправильно?ASP.NET MVC + Angular.js 1 Объект httpGet json является нулевым на сервере

Мой угловой:

module.controller("albumReviewController", function ($http, $scope) { 
    var albumID = $(".ui-albumID").find("input").val(); 
    $http(
    { 
     method: 'Get', 
     url: 'api/AlbumAPI/GetTotalAlbumRatings', 
     data: { albumid: albumID } 
     }).then(function successCallback(response) { 
      $scope.totalRating = response.data; 
     }), function errorCallback(response) { 
      window.console.log(response); 
     }; 
    }; 
}); 

и мой апи контроллер:

[HttpGet("GetTotalAlbumRatings")] 
[Route("api/AlbumAPI/GetTotalAlbumRatings/{model}")] 
public JsonResult GetTotalAlbumRatings([FromBody]RatingAngularViewModel model) 
    { 
     // do stuff 
    } 

и модель:

public class RatingAngularViewModel 
{ 
    public string AlbumID { get; set; } 

    public RatingAngularViewModel() 
    { 
    } 
} 

Я пытаюсь отправить запрос GET для получения некоторых значений с сервера, но моя модель всегда равна нулю.

+0

, что 'Route' в контроллере api выглядит подозрительно для меня. Более интересно, однако, что вы не используете углы для извлечения вашего альбома 'albumID', и вы передаете 'albumid' на ваш сервер, но ваша модель, похоже, ожидает' AlbumID'. – Claies

+0

Да, я думал, что Маршрут в контроллере api ошибочен и может быть причиной этого. я сменил альбом на AlbumID, но все еще null :( – lachis

ответ

0

Я произвел следующие изменения, и это сработало.

в мой контроллер (удален атрибут маршрута):

public JsonResult GetTotalAlbumRatings([FromUri]RatingAngularViewModel model) 
    { 
     // do stuff 
    } 

в угловых:

module.controller("albumReviewController", function ($http, $scope) { 
var albumID = $(".ui-albumID").find("input").val(); 
$http(
{ 
    method: 'Get', 
    url: 'api/AlbumAPI/GetTotalAlbumRatings', 
    params: { AlbumID: albumID } 
    }).then(function successCallback(response) { 
     $scope.totalRating = response.data; 
    }), function errorCallback(response) { 
     window.console.log(response); 
    }; 
}; 

});

Это происходило, потому что я использовал «данные» в httpGet. См. Здесь: https://stackoverflow.com/a/13760360/2589445

Смежные вопросы