WebAPIでこんな感じのメソッドを用意してました。
public HogeApiModel Post([FromBody]string message)
そんで、APIのテストしようとFiddlerからRequestBodyに「message=hogehoge」をセットしてPOSTするのですが、なぜかmessageにバインディングしてくれません。
Fiddlerの使い方が悪いん?とか悩むこと1時間、何気にググってみたら同じ事で悩んでる人がいました。
詳しい動作についてはここで説明されてるみたいですが、ごめんなさい。勉強不足で良く理解できません。MVCとはバインディング時の動作が違うんだなーくらいにしか…
今回のパターンで言うと、RequestBodyの内容は名前を指定せず「=hogehoge」で良かったようです。
結局
以下のようなリクエスト用のクラスを作って、
public class ApiRequestModel { public string Message { get; set; } }
こんな事しちゃいました。
public HogeApiModel Post([FromBody]ApiRequestModel requestModel)
これはあかんやろ
「なんかよくわからんけど、こうやったら上手くいったのでそうしました」って、一番あかんやつですね。
ちゃんと勉強して原因(メカニズム)を理解しないとなぁ。
- 作者: Jamie Kurtz
- 出版社/メーカー: Apress
- 発売日: 2013/01/30
- メディア: ペーパーバック
- この商品を含むブログを見る