2014-02-17 4 views
4

Я тестирую с помощью WebAPI 2, и я создал следующий метод контроллера.WebAPI прошел параметры сообщения null

// POST api/values 
public string Post([FromBody] string value) 
{ 
    string returnValue = "Return: " + value ; 
    return returnValue; 
} 

Когда я отправляю следующее сообщение с fiddler, параметр метода продолжает возвращать null.

POST http://localhost:50814/api/Values/ HTTP/1.1 
Host: localhost:50814 
Content-Type: application/json 
Content-Length: 14 

{value: "New"} 

Я просто использовал свой код уже столько, сколько могу, но все равно он остается нулевым.

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

Благодаря Sander

ответ

3

Если вы принимаете простую строку из сообщения вашего метода контроллера, попробуйте отправить только это:

POST http://localhost:50814/api/Values/ HTTP/1.1 
Host: localhost:50814 
Content-Type: application/json 
Content-Length: 10 

"MyString" 
+0

Спасибо, что работает. –

+0

Добро пожаловать. Чтобы работать с запросом, который вы сделали, вы можете добавить фиктивный объект, например 'public class MyDummy { общедоступное значение строки {get; задавать; } } 'и измените заголовок метода на' public string Post ([FromBody] MyDummy myDummy) '. – GoRoS

+0

Я столкнулся с этой проблемой. Я попробую это решение сегодня вечером. Но я пытаюсь понять, почему это проблема? Это как-то связанная проблема? Если параметр метода называется «значение», и украшение специально указывает, что оно исходит из тела сообщения, почему он не может его прочитать? – sshirley

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