ASP.NET MVC 4 RC Web APIパラメーターバインディングの問題 に似た問題がありますが、[FromBody]属性を使用して解決しようとしています。
Fiddlerは次のリクエストを報告します(User Agent Stringのような無関係なビットを除く)
PUT http://localhost:82/api/account/shoppinglistitems HTTP/1.1
Host: localhost:82
Connection: keep-alive
Content-Length: 11
Origin: http://localhost:3000
Content-Type: application/x-www-form-urlencoded
Accept: application/json, text/javascript, */*; q=0.01
query=Apple
私のコントローラーのアクションは
[HttpPut]
public ShoppingListItemWebModel CreateShoppingListItem([FromBody]string query) {
// query is null
}
パラメーターを複雑な型にラップすることもできますが、それは問題を修正するためのハックのようです。または、クエリをURIに入れることもできますが、それは残りのAPIのパターンに適合しません。このようにすることは可能ですか?もしそうなら、私の間違いはどこですか?
リクエストを変更する
PUT http://localhost:82/api/account/shoppinglistitems HTTP/1.1
Host: localhost:82
Connection: keep-alive
Content-Length: 11
Origin: http://localhost:3000
Content-Type: application/x-www-form-urlencoded
Accept: application/json, text/javascript, */*; q=0.01
=Apple
「クエリ」の欠如に注意してください
Jgの代わりにAngularJSを使用している場合、AngularJSはコンテンツタイプapplication/json
デフォルトでは。
PUT http://localhost:82/api/account/shoppinglistitems HTTP/1.1
Host: localhost:82
Connection: keep-alive
Content-Length: 7
Origin: http://localhost:3000
Content-Type: application/json
Accept: application/json, text/javascript, */*; q=0.01
'Apple'
値が文字列引用符で囲まれていることに注意してください(シングルまたはダブル)。