c# - web api: action parameter is null -


i have simple web api when test postman, method parameter null. i've looked , on other questions similar title haven't found answer.

here controller action:

    [httppost]     public member create([frombody] string payload)     {         var s = request.content.readasstringasync();          if (payload == null)         {             throw new argumentnullexception(nameof(payload));         }          console.writeline(payload);         console.writeline(s);          return null;     } 

and here postman configuration: enter image description here

in headers tab i've added content-type application/json.

when i'm debugging this, payload variable allways null , string s contains

id = 98, status = rantocompletion, method = "{null}", result = "" 

so doing wrong?

you should wrap string in model (object):

class model {     public string payload {get;set;} }  [httppost] public async task<member> create([frombody] model model) // wrap member in task , add async keyword {     var s = await request.content.readasstringasync(); // add await here      if (model.payload == null)     {         throw new argumentnullexception(nameof(model.payload));     }      console.writeline(model.payload);     console.writeline(s);      return null; } 

if don't want use model, try send plain string, "some payload", not wrap in json.


Comments

Popular posts from this blog

account - Script error login visual studio DefaultLogin_PCore.js -

xcode - CocoaPod Storyboard error: -