ASP.NET Web API How to retrieve simple type parameter
[FromBody] prefix attribute
We need to marked [FromBody] as a prefix of primitive type parameters because primitive types parameter’s value will be searched from body of http request.
string Post([FromBody]string value)
Please keep in mind that we can have only one parameter for each request body.
How to make a http request from clients
We also need to do something at client when making a http request.
Web API’s model binder expects to find the [FromBody] values in the POST body without a key name at all. In other words, instead of key=value, it’s looking for =value.
Request’s Content-Type
We can pass parameter from client in two ways
- Content-Type: application/x-www-form-urlencoded
this way need to prefixed “=” before the value e.g. =parameter value

For jQuery $.ajax(), There are two ways to make it works
$.post(‘api/Post’, “=” + value);
$.post(‘api/Post’, { ‘’: value });
Note: Notice that the ‘’ key value has no space between the single quotes.
For AngularJs $http
$http({ url: serverUrl, method: “POST”, data: “=” + postData })
2. Content-Type: application/json
this way needs to quote the value with double quote e.g. “parameter value”

if parameter type is string we need JSON.stringify() to quote the parameter
otherwise just the pure value
$http({ url: serverUrl, method: “POST”, JSON.stringify(postString) })
Reference :
http://encosia.com/using-jquery-to-post-frombody-parameters-to-web-api/