POST 本文にパラメーターが 1 つしかない場合、URL 形式でエンコードされたコンテンツ タイプの構文が複数のパラメーターの場合と異なる理由を理解したいと思います。
ルート テンプレートが一致するこれら 2 つのメソッドがあるとします。
public string PostSingleString([FromBody]string value)
{
return value;
}
public class Values
{
public string Value1 {get; set;}
public string Value2 {get; set;}
}
public string PostMultipleStrings(Values values)
{
return String.Format("{0}-{1}", values.Value1, values.Value2);
}
最初のケースでは、リクエストは次のようになります。
POST [controller]/
body: =myValue
ただし、2番目のものでは:
POST [controller]/
body: Value1=one&Value2=two
最初のケースで 2 番目の例の構文が使用された場合 ( value=myValue
)、param はバインドされません (文字列が複合型でラップされていない限り)。
なぜこれが当てはまるのか、誰でも説明できますか?