を使用している場合、アクションparamerがname
パラメータは、ここで WEBAPIは - [FromBody]属性とPOSTメソッド
public class DeviceController : ApiController
{
[HttpPost]
public void Select([FromBody]string name)
{
//problem: name is always null
}
}
nullである理由を、私はこのコントローラを持っていると私は理解することはできませんnullである私のルートマッピングです: 私もプレーンな文字列に身体を変更しようとしました
POST http://localhost:9000/api/device/Select HTTP/1.2
User-Agent: Fiddler
Host: localhost:9000
Content-Length: 16
Content-Type: application/json
{'name':'hello'}
:
public void Configuration(IAppBuilder appBuilder)
{
HttpConfiguration config = new HttpConfiguration();
config.Routes.MapHttpRoute(
name: "ActionApi",
routeTemplate: "api/{controller}/{action}"
);
appBuilder.UseWebApi(config);
}
、ここでは私の要求であるhello
。
POST http://localhost:9000/api/device/Select HTTP/1.2
User-Agent: Fiddler
Host: localhost:9000
Content-Length: 5
Content-Type: application/json
hello
要求は204に戻りますが、パラメータは決して投稿された値にマップされません。
*自己ホスティングサービスを使用しています。
私はFromBodyパラメーターを持っています。違いは私がカスタムアクションを使用していることです – Liero
サンプルリクエストを見て、リクエストと比較してください。あなたは '' hello ''のような**単純な型**とは対照的に、オブジェクト' {' name ':' hello '} 'を投稿していることに気づくでしょう。 – Nkosi
私は私の質問を書いたので、私は引用符がない。私は '' hello''を代わりに投稿しました。 '' hello''です。解決策に至ったので、これを正しいasnwerとしてマークしますが、私が – Liero