I have a class that name is Advertisement:
public class Advertisement
{
public string Title { get; set; }
public string Desc { get; set; }
}
Several issues:
application/octet-stream
, use application/json;charset=UTF-8
, instead. public IHttpActionResult Test(Advertisement advertisement)
needs to have [FromBody]
in it:
public IHttpActionResult Test([FromBody]Advertisement advertisement) { ... }
By default, the ApiController expects anything being passed in to represent URL parameters, so you'd need that [FromBody]
for any data you are posting in the Request Body that you want parsed out.
You need to decorate your Post method with [System.Web.Http.HttpPost]
so that it doesn't think it's the MVC version [System.Web.Mvc.HttpPost]
. Ensure you put the full thing, because [HttpPost]
will also default to the MVC version. It's probably not a bad idea to rename Test
to Post
, as well, though you might be using that for a Unit Test method, so not sure on that one.
Send your data as JSON: { Title: "some title", Desc: "some description" }
Do something with advertisement
inside your Post()
function:
string title = advertisement.Title;
string desc = advertisement.Desc;