Как отправить данные JSON $ http.Post из Angular в метод webAPI POST? - PullRequest
0 голосов
/ 07 февраля 2019

Я пытаюсь передать данные в виде объекта JSON с помощью $ http.Post в метод webAPI.В методе WebAPI параметром метода является объект класса.

Он прекрасно работает, когда я тестирую метод webAPI с помощью Postman. Но я не могу передать объект JSON угловым $ http.post method-Я получаю нулевые значения в параметре webAPI (в объекте класса).

Может кто-нибудь посоветовать, пожалуйста, как исправить проблему. Я новичок в AngularJS. Пожалуйста, помогите.

AngularJSКод

angular.module('Test.Employer')
    .controller('EmployerController', ['$scope','headerValue', '$http',
        function ($scope, headerValue, $http) { 
            var ipEmployerDetls = {                   
                EmployerName: "cherokee",
                Company: "ABC"                   
            };

            $http({ 
                url: "http://localhost:212122/api/Values/PostEmployeeData",
                dataType: 'json', 
                method: 'POST', 
                data: JSON.stringify(ipEmployerDetls), 
                headers: { 
                    "Content-Type": "application/json" 
                } 
            }).success(function (response) { 
                $scope.object = response.data;
            }) 
                .error(function (error) { 
                    alert(error.Message); 
                });
})();

WebAPI

using System.Web.Http;
using AttributeRouting.Web.Http;

namespace webAPITestProject.Controllers
{
    [Route("api/Values")] 
    public class ValuesController : ApiController
    {
        retrieveEmployeeData empData = new retrieveEmployeeData();
        retrieveProductDetails prodDetls = new retrieveProductDetails();    

        [Route("PostEmployeeData")] 
        [HttpPost]
        public DataTable PostEmployeeData([FromBody] Employer empDetails)
        {
            DataTable dataTable = new DataTable { TableName = "MyTableName" };
            dataTable = empData.getEmployeeData(empDetails);
            return dataTable;
        }
    }
}

ПРИМЕЧАНИЕ: Я получаю значение NULL в empDetails в методе webAPI, но когда яПротестируйте метод в Почтальоне, он имеет значение.

1 Ответ

0 голосов
/ 07 февраля 2019

Ваши атрибуты маршрутизации выглядят не так, как указано в API-вызове $ http.

Похоже, вы хотите, чтобы атрибут уровня класса был:

[RoutePrefix("api/Values")]
public class ValuesController : ApiController

Это будет означать, что PostEmployeeData имеет маршрут api / Values ​​/ PostEmployeeData .

Вам также необходимо убедиться, что ваши свойства в ipEmployerDetls напрямую отображаются на вашего работодателя.класс (который вы не показали), так что привязка модели работает правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...