本体から取得できる値は 1 つだけです
このようなリクエストボディがあるとします。
{"Id":12345, "FirstName":"John", "LastName":"West"}
この JSON を、このような型のパラメーターにバインドする必要があります。
public class Employee
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
アクションメソッドは次のようになりvoid Post(Employee emp)
ます。そして、こんなはずじゃない―― void Post(Employee john, Employee duplicateJohn)
。本体から取得できる値は 1 つだけです。
その値はボディ全体を表す必要があります
このような同じリクエストボディがあるとします。
{"Id":12345, "FirstName":"John", "LastName":"West"}
そして、このような 2 つの DTO があります。
public class Identifier
{
public int Id { get; set; }
}
public class Name
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
のようなアクション メソッドを持つことはできずvoid Post(Identifier id, Name name)
、本体が両方のパラメーターに部分的にバインドされることを期待できません。本体全体は、 1 つの値のみにバインドする必要があります。だから、次のようなクラスを持つ
public class Employee
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
リクエスト本文全体を 1 つの値にバインドすることvoid Post(Employee emp)
のみが許可されます。