Мне нужно передать данные, введенные в интерфейс AngularJS, в webAPI и получить другой набор данных для заполнения в сетке.Я пытаюсь передать данные в виде объекта JSON в метод webAPI.В методе WebAPI параметр, который я передаю для объекта JSON в качестве объекта Class.
Я не могу войти в конкретный метод webAPI, когда использую [HTTPPost] и получаю ошибку as- На контроллере, соответствующем запросу, не найдено никаких действий.
Но я могу войти в другие методы webAPI, имеющие [HTTPGet].
Может кто-нибудь подсказать, пожалуйста, как решить проблему. Спасибо!
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;
}
}
}
AngularJS-Controller
angular.module('Test.Employer')
.controller('EmployerController', ['$scope','headerValue', '$http',
function ($scope, headerValue, $http) {
var ipEmployerDetls = {
EmployerName: "cherokee",
Company: "ABC"
};
$http({
url: 'http://localhost:53583/api/Values/PostEmployeeData?empDetails='+'"'+JSON.stringify(ipEmployerDetls)+'"',
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);
});
})();
Класс работодателя
public class Employer
{
public string Company{get;set;}
public string EmployerName{get;set;}
}