2016-01-28 2 views
0

В настоящее время я пытаюсь использовать HttpPost для обработки параметра form-body для получения некоторой информации для редактирования моего бэкэнда. У меня есть функцияHttpPost с простым параметром string-body string throwing No MediaTypeFormatter доступен для чтения объекта типа Exception

[HttpPost] 
    [Route("api/delete")] 
    public IHttpActionResult delete([FromBody]Product p) 
     { 
     try { 

      _db.deleteProduct(p.ID); 

      return Ok(1); 
     } 
     catch (Exception ex) 
     { 
      return BadRequest(ex.ToString()); 
     } 
    } 

с продуктом является модель, которую я создал с характеристиками

public class Product 
{ 
    public string ID { get; set; } 
} 

Однако, когда я пытаюсь использовать этот метод, с помощью почтальона и значение формы тела, I с этой ошибкой.

{ 
"Message": "The request entity's media type 'multipart/form-data' is not supported for this resource.", 
"ExceptionMessage": "No MediaTypeFormatter is available to read an object of type 'Product' from content with media type 'multipart/form-data'.", 
"ExceptionType": "System.Net.Http.UnsupportedMediaTypeException", 
"StackTrace": " at System.Net.Http.HttpContentExtensions.ReadAsAsync[T](HttpContent content, Type type, IEnumerable`1 formatters, IFormatterLogger formatterLogger, CancellationToken cancellationToken)\r\n at System.Web.Http.ModelBinding.FormatterParameterBinding.ReadContentAsync(HttpRequestMessage request, Type type, IEnumerable`1 formatters, IFormatterLogger formatterLogger, CancellationToken cancellationToken)" 
} 

Любая помощь будет принята с благодарностью.

ответ

0

Ввод p.ID в кавычки не отправляет идентификатор, а фактическую строку «p.ID» в метод.

Удалите кавычки вокруг p.ID

[HttpPost] 
    [Route("api/delete")] 
    public IHttpActionResult delete([FromBody]Product p) 
     { 
     try { 

      _db.deleteProduct(p.ID); 

      return Ok(1); 
     } 
     catch (Exception ex) 
     { 
      return BadRequest(ex.ToString()); 
     } 
    } 
+0

ах да мои извинения. Я не хотел ставить котировки. Ошибка по-прежнему сохраняется без кавычек. –

+0

Пожалуйста, добавьте код для метода deleteProduct. – jvanrhyn

+0

его хранимая процедура, которую я написал на SQL. Если я вручную добавлю параметр в функцию, то есть _db.deleteProduct («00002024»), база данных, похоже, отлично обрабатывает хранимую процедуру. –

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