Asp.Net и Angular пытаются отправить массив объектов в Post API

0

Я использую базу данных продуктов Министерства сельского хозяйства США, чтобы попытаться сделать приложение, которое скажет вам, получили ли вы ежедневные рекомендации по витаминам. Я получаю данные просто отлично, но мне интересно, можно ли отправлять эти данные из Angular в С# api, поэтому я могу добавить массив строк и int в общую модель подсчета. Как я буду маршрутизировать это и какие данные я должен сказать API, чтобы ожидать?

Ошибка, которую я получаю прямо сейчас:

Сообщение: "HTTP-ресурс не найден, который соответствует URI запроса" http://localhost/api/apiFood [object Object] ". MessageDetail: "Тип не найден, который соответствует контроллеру с именем" apiFood [object Object] "."

Я пробовал:

 public IHttpActionResult Post([FromUri]ValueVM toEat)
            {
                return Ok();
            }

просто посмотреть, будет ли он маршрутизировать, но это не сработало.

Я отправляю данные с помощью ngclick = "add (display)", который переходит к этой функции в контроллере:

$scope.add = function (display) {
    FoodFactory.add(display).then(function (data) {

   });
};

и эта функция на заводе:

o.add = function (display) {
    var defer = $q.defer();
    var config = { contentType: 'application/json' };
    $http.post('api/apiFood' + display, config).success(function (data) {
        defer.resolve(data);
    });
    return defer.promise;
};
  • 0
    Если вы отправляете массив. Затем используйте [FromUri]List<ValueVM> toEat вместо [FromUri]ValueVM toEat
  • 0
    Пожалуйста, покажите, как вы отправляете данные на контроллер. Эта ошибка ясно указывает на то, что вы отправляете неправильный объект.
Показать ещё 4 комментария
Теги:

1 ответ

0

В вашей модели

public class toEat
{
public int id {get;set;}
public string name {get;set;}
}

В вашем ApiController

public class EatController : ApiController 
{
   [HttpPost]
   public HttpResponseMessage Post(List<toEat> list)     
   {
        return Ok();
   }       
}

Ваш запрос

function Request() {
  $.ajax({
     type: "POST",
     url: url,
     contentType: "application/json",
     data: (your serialized array),
     async: false,
     success: function(data) {
        console.log(data);
     }
  });
}

Ещё вопросы

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