これが ASP.NET の制限に関するバグかどうかはわかりません。Infoという名前のクラスがあるとしましょう。
public class Info
{
public int Id { get; set; }
public string Data { get; set; }
public Info(int id)
{
this.Id = id;
}
}
これがコントローラーのメソッドです。
[HttpPost]
[ActionName("Post")]
public HttpResponseMessage Post([FromBody]Info info)
jsonをウェブサイトに投稿するとうまくいきます。
POST /test/post HTTP/1.1
Host: localhost:60002
Content-Type: application/json;charset=UTF-8
Cache-Control: no-cache
{ "Id": "1", "Data": "Test" }
問題は、文字列パラメーター コンストラクターを に追加すると動作しなくなることInfo
です。
public class Info
{
public int Id { get; set; }
public string Data { get; set; }
public Info(int id)
{
this.Id = id;
}
// this messes things up
public Info(string data)
{
// to do
}
}
私の質問は、ASP.NET の制限ですか、バグですか、それとも何か間違ったことをしているのですか?