1

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 はバインドされません (文字列が複合型でラップされていない限り)。

なぜこれが当てはまるのか、誰でも説明できますか?

4

0 に答える 0