2016-10-22 4 views
0

Я создал новый проект Web API ASP.Net с помощью Visual Studio 2015 и во время тестирования POST команды через Скрипач я получить ответ 201 нет контента. После этого, когда я использую команду GET, команда на fiddler не сохраняет новое значение. Я не публикую его только в режиме отладки.ASP.Net Web API Сообщение Команда не сохраняет значения

static List<string> Strings = new List<string>() { 
     "value0", "value1", "value2" 
    }; 

// GET api/values 
    public IEnumerable<string> Get() 
    { 
     return Strings; 
    } 

// POST api/values 
    public void Post([FromBody]string value) 
    { 
     Strings.Add(value); 
    } 
+0

Вы можете добавить код на стороне клиента (тот, который отправляет запрос на отправку) – Jek

ответ

1

Я думаю, что проблема в том, что нет возвращаемого значения void

В соответствии с asp.net:

https://www.asp.net/web-api/overview/getting-started-with-aspnet-web-api/action-results

Если тип возвращаемого значения является недействительным, Web API просто возвращает пустой HTTP-ответ со статусом 204 (No Content).

0

Ваш код работал для меня и был добавлен в список. Убедитесь, что вы отправляете с типом контента application/json как 'the string' (я использовал Postman для проверки POST).

Вы получите 201, потому что метод Get недействителен, но это не означает, что POST не работает. Если вы хотите что-то вернуть, вы можете изменить тип возврата на что-то вроде IHttpActionResult и return Ok(Strings), после добавления в список, который вернет список и статус 200. Вы могли бы даже добавить некоторый код для проверки работы списка, а затем вернуть Ok() или BadRequest().